In [1]:
import dask.distributed
import dask.dataframe as dd
import pandas as pd
import numpy as np
In [2]:
client = dask.distributed.Client('localhost:8786')
In [16]:
client.restart()
Out[16]:
<Client: scheduler='tcp://localhost:8786' processes=4 cores=4>
In [17]:
df = dd.read_parquet('/bigdata/citibike.parquet')
# df = client.persist(df.repartition(npartitions=20))
In [18]:
df.head()
Out[18]:
trip_duration
start_time
stop_time
start_station_id
start_station_name
start_station_latitude
start_station_longitude
end_station_id
end_station_name
end_station_latitude
end_station_longitude
bike_id
user_type
birth_year
gender
0
634
2013-07-01 00:00:00
2013-07-01 00:10:34
164
E 47 St & 2 Ave
40.753231
-73.970322
504
1 Ave & E 15 St
40.732220
-73.981659
16950
Customer
NaN
0
1
1547
2013-07-01 00:00:02
2013-07-01 00:25:49
388
W 26 St & 10 Ave
40.749718
-74.002953
459
W 20 St & 11 Ave
40.746746
-74.007759
19816
Customer
NaN
0
2
178
2013-07-01 00:01:04
2013-07-01 00:04:02
293
Lafayette St & E 8 St
40.730286
-73.990768
237
E 11 St & 2 Ave
40.730473
-73.986725
14548
Subscriber
1980.0
2
3
1580
2013-07-01 00:01:06
2013-07-01 00:27:26
531
Forsyth St & Broome St
40.718941
-73.992661
499
Broadway & W 60 St
40.769154
-73.981918
16063
Customer
NaN
0
4
757
2013-07-01 00:01:10
2013-07-01 00:13:47
382
University Pl & E 14 St
40.734928
-73.992004
410
Suffolk St & Stanton St
40.720665
-73.985176
19213
Subscriber
1986.0
1
In [7]:
all_ids_in_dataset = df.start_station_id.unique().compute().values.tolist() + df.end_station_id.unique().compute().values.tolist()
all_ids_in_dataset.sort()
In [8]:
import urllib, json
In [9]:
zz = pd.DataFrame(json.loads(
(urllib.request.urlopen('https://feeds.citibikenyc.com/stations/stations.json').read()).decode('utf-8')
)['stationBeanList'])
zz.head()
Out[9]:
altitude
availableBikes
availableDocks
city
id
landMark
lastCommunicationTime
latitude
location
longitude
postalCode
stAddress1
stAddress2
stationName
statusKey
statusValue
testStation
totalDocks
0
1
37
72
2017-04-19 12:56:59 PM
40.767272
-73.993929
W 52 St & 11 Ave
W 52 St & 11 Ave
1
In Service
False
39
1
27
6
79
2017-04-19 12:56:18 PM
40.719116
-74.006667
Franklin St & W Broadway
Franklin St & W Broadway
1
In Service
False
33
2
0
0
82
2017-04-13 12:05:52 PM
40.711174
-74.000165
St James Pl & Pearl St
St James Pl & Pearl St
3
Not In Service
False
0
3
33
26
83
2017-04-19 12:58:16 PM
40.683826
-73.976323
Atlantic Ave & Fort Greene Pl
Atlantic Ave & Fort Greene Pl
1
In Service
False
62
4
12
26
116
2017-04-19 12:58:08 PM
40.741776
-74.001497
W 17 St & 8 Ave
W 17 St & 8 Ave
1
In Service
False
39
In [20]:
df.start_station_id.compute().shape
Out[20]:
(36902025,)
In [21]:
df_s = df[['start_station_id', 'start_station_name', 'start_station_latitude', 'start_station_longitude']]
df_e = df[['end_station_id', 'end_station_name', 'end_station_latitude', 'end_station_longitude']]
In [22]:
df_s = df_s[(df_s.start_station_latitude > 40.) & (df_s.start_station_latitude < 41.)]
df_s = df_s[(df_s.start_station_longitude + 74.0 > -0.25) & (df_s.start_station_longitude + 74.0 < 0.25)]
df_e = df_e[(df_e.end_station_latitude > 40.) & (df_e.end_station_latitude < 41.)]
df_e = df_e[(df_e.end_station_longitude + 74.0 > -0.25) & (df_e.end_station_longitude + 74.0 < 0.25)]
In [23]:
df_s.head()
Out[23]:
start_station_id
start_station_name
start_station_latitude
start_station_longitude
0
164
E 47 St & 2 Ave
40.753231
-73.970322
1
388
W 26 St & 10 Ave
40.749718
-74.002953
2
293
Lafayette St & E 8 St
40.730286
-73.990768
3
531
Forsyth St & Broome St
40.718941
-73.992661
4
382
University Pl & E 14 St
40.734928
-73.992004
In [26]:
a1 = df_s.groupby(['start_station_id', 'start_station_name']).mean().compute()
a2 = df_e.groupby(['end_station_id', 'end_station_name']).mean().compute()
In [27]:
b1 = a1.copy()
b2 = a2.copy()
In [28]:
b1.index = b1.index.rename(['id', 'name'])
b1.columns = ['lat', 'lon']
b2.index = b2.index.rename(['id', 'name'])
b2.columns = ['lat', 'lon']
In [83]:
c = b1.append(b2).drop_duplicates().reset_index().sort_values('id').reset_index(drop=True)
In [106]:
mm = (df[['start_station_id', 'start_station_name', 'end_station_id', 'end_station_name']])[(df.start_station_id==3239) | (df.end_station_id == 3239)].compute()
mm
Out[106]:
start_station_id
start_station_name
end_station_id
end_station_name
266052
3239
Bressler
3239
Bressler
268611
3239
Bressler
3239
Bressler
268802
3239
Bressler
3239
Bressler
269195
3239
Bressler
3239
Bressler
341927
3239
Bressler
3239
Bressler
343318
3239
Bressler
3239
Bressler
347861
3239
Bressler
3239
Bressler
365081
3239
Bressler
3239
Bressler
373718
3239
Bressler
3239
Bressler
374793
3239
Bressler
3239
Bressler
375450
3239
Bressler
3239
Bressler
6667
3239
Bressler
3239
Bressler
20079
3239
Bressler
3239
Bressler
21458
3239
Bressler
3239
Bressler
23007
3239
Bressler
3239
Bressler
23382
3239
Bressler
3239
Bressler
24112
3239
Bressler
3239
Bressler
25791
3239
Bressler
3239
Bressler
In [85]:
c.sort_values(['lat', 'lon'])
Out[85]:
id
name
lat
lon
1074
3239
Bressler
40.646539
-74.016588
1083
3245
Kiosk in a box Motivate
40.646677
-74.016298
734
3040
SSP Tech Workshop
40.646678
-74.016262
733
3040
SSP Tech Workshop
40.646679
-74.016269
116
255
NYCBS Depot - SSP
40.646765
-74.016513
117
255
NYCBS Depot - SSP
40.646766
-74.016510
731
3036
8D OPS 01
40.651489
-74.026636
1384
3423
West Drive & Prospect Park West
40.661064
-73.979458
1385
3423
West Drive & Prospect Park West
40.661066
-73.979451
1400
3432
Bike in Movie Night | Prospect Park Bandshell
40.662987
-73.976919
1401
3432
Bike in Movie Night | Prospect Park Bandshell
40.662988
-73.976922
1172
3310
14 St & 7 Ave
40.663779
-73.983970
1173
3310
14 St & 7 Ave
40.663781
-73.983969
1153
3300
Prospect Park West & 8 St
40.665146
-73.976375
1152
3300
Prospect Park West & 8 St
40.665147
-73.976377
1165
3306
10 St & 7 Ave
40.666206
-73.982001
1164
3306
10 St & 7 Ave
40.666208
-73.982001
1188
3319
14 St & 5 Ave
40.666285
-73.988950
1189
3319
14 St & 5 Ave
40.666287
-73.988959
1178
3313
6 Ave & 12 St
40.666319
-73.985456
1179
3313
6 Ave & 12 St
40.666319
-73.985458
1160
3304
6 Ave & 9 St
40.668124
-73.983782
1161
3304
6 Ave & 9 St
40.668125
-73.983779
1252
3354
3 St & Prospect Park West
40.668132
-73.973639
1253
3354
3 St & Prospect Park West
40.668133
-73.973642
1198
3324
3 Ave & 14 St
40.668544
-73.993327
1199
3324
3 Ave & 14 St
40.668544
-73.993333
1194
3322
12 St & 4 Ave
40.668601
-73.990444
1195
3322
12 St & 4 Ave
40.668602
-73.990439
1186
3317
10 St & 5 Ave
40.668628
-73.987002
...
...
...
...
...
1181
3314
W 95 St & Broadway
40.793769
-73.971884
1180
3314
W 95 St & Broadway
40.793773
-73.971886
1166
3307
West End Ave & W 94 St
40.794165
-73.974123
1167
3307
West End Ave & W 94 St
40.794168
-73.974121
1207
3328
W 100 St & Manhattan Ave
40.794996
-73.964502
1206
3328
W 100 St & Manhattan Ave
40.795000
-73.964500
1229
3341
Central Park West & W 102 St
40.795345
-73.961860
1228
3341
Central Park West & W 102 St
40.795347
-73.961864
1341
3400
E 110 St & Madison Ave
40.796155
-73.947823
1340
3400
E 110 St & Madison Ave
40.796157
-73.947824
1157
3302
Columbus Ave & W 103 St
40.796935
-73.964336
1156
3302
Columbus Ave & W 103 St
40.796937
-73.964344
1246
3350
W 100 St & Broadway
40.797368
-73.970411
1247
3350
W 100 St & Broadway
40.797371
-73.970416
1196
3323
W 106 St & Central Park West
40.798183
-73.960594
1197
3323
W 106 St & Central Park West
40.798191
-73.960598
1185
3316
W 104 St & Amsterdam Ave
40.798991
-73.966219
1184
3316
W 104 St & Amsterdam Ave
40.798991
-73.966217
1291
3374
Central Park North & Adam Clayton Powell Blvd
40.799484
-73.955612
1292
3374
Central Park North & Adam Clayton Powell Blvd
40.799486
-73.955614
1232
3343
W 107 St & Columbus Ave
40.799754
-73.962110
1233
3343
W 107 St & Columbus Ave
40.799755
-73.962108
1259
3357
W 106 St & Amsterdam Ave
40.800833
-73.966447
1258
3357
W 106 St & Amsterdam Ave
40.800834
-73.966450
1213
3331
Riverside Dr & W 104 St
40.801342
-73.971141
1212
3331
Riverside Dr & W 104 St
40.801345
-73.971141
1277
3366
West End Ave & W 107 St
40.802117
-73.968177
1276
3366
West End Ave & W 107 St
40.802117
-73.968177
1307
3383
Cathedral Pkwy & Broadway
40.804216
-73.966983
1308
3383
Cathedral Pkwy & Broadway
40.804218
-73.966992
1413 rows × 4 columns
In [99]:
zz[['id', 'stationName', 'latitude', 'longitude']].sort_values(['latitude', 'longitude'])
Out[99]:
id
stationName
latitude
longitude
639
3423
West Drive & Prospect Park West
40.661063
-73.979453
530
3310
14 St & 7 Ave
40.663779
-73.983968
520
3300
Prospect Park West & 8 St
40.665147
-73.976376
526
3306
10 St & 7 Ave
40.666208
-73.981999
539
3319
14 St & 5 Ave
40.666287
-73.988951
533
3313
6 Ave & 12 St
40.666318
-73.985462
524
3304
6 Ave & 9 St
40.668127
-73.983776
573
3354
3 St & Prospect Park West
40.668132
-73.973638
544
3324
3 Ave & 14 St
40.668546
-73.993333
542
3322
12 St & 4 Ave
40.668603
-73.990439
537
3317
10 St & 5 Ave
40.668627
-73.987001
517
3297
6 St & 7 Ave
40.668663
-73.979881
584
3365
3 St & 7 Ave
40.670384
-73.978397
622
3405
5 St & 6 Ave
40.670484
-73.982090
621
3404
7 St & 5 Ave
40.670492
-73.985417
620
3403
4 Ave & 9 St
40.670513
-73.988766
577
3358
Garfield Pl & 8 Ave
40.671198
-73.974841
618
3401
2 Ave & 9 St
40.672481
-73.993314
550
3330
Henry St & Bay St
40.672506
-74.004947
616
3399
7 St & 3 Ave
40.672603
-73.989830
571
3352
Sigourney St & Columbia St
40.672672
-74.008795
587
3368
5 Ave & 3 St
40.672815
-73.983524
568
3349
Grand Army Plaza & Plaza St West
40.672968
-73.970880
556
3337
Dwight St & Van Dyke St
40.673636
-74.011956
580
3361
Carroll St & 6 Ave
40.674089
-73.978728
546
3326
Clinton St & Centre St
40.674340
-74.001947
590
3371
4 Ave & 2 St
40.674613
-73.985011
615
3398
Smith St & 9 St
40.674696
-73.997858
553
3333
Columbia St & Lorraine St
40.674706
-74.007557
572
3353
Reed St & Van Brunt St
40.674784
-74.016128
...
...
...
...
...
608
3391
E 106 St & 1 Ave
40.789253
-73.939562
564
3345
Madison Ave & E 99 St
40.789485
-73.952429
510
3289
W 90 St & Amsterdam Ave
40.790179
-73.972889
647
3434
W 88 St & West End Ave
40.790254
-73.977183
598
3379
E 103 St & Lexington Ave
40.790305
-73.947558
582
3363
E 102 St & Park Ave
40.790483
-73.950331
515
3295
Central Park W & W 96 St
40.791270
-73.964839
653
3445
Riverside Dr & W 89 St
40.791812
-73.978602
521
3301
Columbus Ave & W 95 St
40.791956
-73.968087
640
3424
E 106 St & Lexington Ave
40.791976
-73.945993
513
3293
W 92 St & Broadway
40.792100
-73.973900
586
3367
5 Ave & E 103 St
40.792255
-73.952499
607
3390
E 109 St & 3 Ave
40.793297
-73.943208
540
3320
Central Park West & W 100 St
40.793393
-73.963556
604
3387
E 106 St & Madison Ave
40.793434
-73.949450
534
3314
W 95 St & Broadway
40.793770
-73.971888
527
3307
West End Ave & W 94 St
40.794165
-73.974124
548
3328
W 100 St & Manhattan Ave
40.795000
-73.964500
560
3341
Central Park West & W 102 St
40.795346
-73.961860
617
3400
E 110 St & Madison Ave
40.796154
-73.947821
522
3302
Columbus Ave & W 103 St
40.796935
-73.964341
569
3350
W 100 St & Broadway
40.797372
-73.970412
543
3323
W 106 St & Central Park West
40.798186
-73.960591
536
3316
W 104 St & Amsterdam Ave
40.798994
-73.966217
593
3374
Central Park North & Adam Clayton Powell Blvd
40.799484
-73.955613
562
3343
W 107 St & Columbus Ave
40.799757
-73.962113
576
3357
W 106 St & Amsterdam Ave
40.800836
-73.966449
551
3331
Riverside Dr & W 104 St
40.801343
-73.971146
585
3366
West End Ave & W 107 St
40.802117
-73.968181
601
3383
Cathedral Pkwy & Broadway
40.804213
-73.966991
664 rows × 4 columns
In [89]:
import sklearn.neighbors
In [90]:
help(sklearn.neighbors.BallTree)
Help on class BallTree in module sklearn.neighbors.ball_tree:
class BallTree(BinaryTree)
| BallTree for fast generalized N-point problems
|
| BallTree(X, leaf_size=40, metric='minkowski', \**kwargs)
|
| Parameters
| ----------
| X : array-like, shape = [n_samples, n_features]
| n_samples is the number of points in the data set, and
| n_features is the dimension of the parameter space.
| Note: if X is a C-contiguous array of doubles then data will
| not be copied. Otherwise, an internal copy will be made.
|
| leaf_size : positive integer (default = 40)
| Number of points at which to switch to brute-force. Changing
| leaf_size will not affect the results of a query, but can
| significantly impact the speed of a query and the memory required
| to store the constructed tree. The amount of memory needed to
| store the tree scales as approximately n_samples / leaf_size.
| For a specified ``leaf_size``, a leaf node is guaranteed to
| satisfy ``leaf_size <= n_points <= 2 * leaf_size``, except in
| the case that ``n_samples < leaf_size``.
|
| metric : string or DistanceMetric object
| the distance metric to use for the tree. Default='minkowski'
| with p=2 (that is, a euclidean metric). See the documentation
| of the DistanceMetric class for a list of available metrics.
| ball_tree.valid_metrics gives a list of the metrics which
| are valid for BallTree.
|
| Additional keywords are passed to the distance metric class.
|
| Attributes
| ----------
| data : np.ndarray
| The training data
|
| Examples
| --------
| Query for k-nearest neighbors
|
| >>> import numpy as np
| >>> np.random.seed(0)
| >>> X = np.random.random((10, 3)) # 10 points in 3 dimensions
| >>> tree = BallTree(X, leaf_size=2) # doctest: +SKIP
| >>> dist, ind = tree.query([X[0]], k=3) # doctest: +SKIP
| >>> print ind # indices of 3 closest neighbors
| [0 3 1]
| >>> print dist # distances to 3 closest neighbors
| [ 0. 0.19662693 0.29473397]
|
| Pickle and Unpickle a tree. Note that the state of the tree is saved in the
| pickle operation: the tree needs not be rebuilt upon unpickling.
|
| >>> import numpy as np
| >>> import pickle
| >>> np.random.seed(0)
| >>> X = np.random.random((10, 3)) # 10 points in 3 dimensions
| >>> tree = BallTree(X, leaf_size=2) # doctest: +SKIP
| >>> s = pickle.dumps(tree) # doctest: +SKIP
| >>> tree_copy = pickle.loads(s) # doctest: +SKIP
| >>> dist, ind = tree_copy.query(X[0], k=3) # doctest: +SKIP
| >>> print ind # indices of 3 closest neighbors
| [0 3 1]
| >>> print dist # distances to 3 closest neighbors
| [ 0. 0.19662693 0.29473397]
|
| Query for neighbors within a given radius
|
| >>> import numpy as np
| >>> np.random.seed(0)
| >>> X = np.random.random((10, 3)) # 10 points in 3 dimensions
| >>> tree = BallTree(X, leaf_size=2) # doctest: +SKIP
| >>> print tree.query_radius(X[0], r=0.3, count_only=True)
| 3
| >>> ind = tree.query_radius(X[0], r=0.3) # doctest: +SKIP
| >>> print ind # indices of neighbors within distance 0.3
| [3 0 1]
|
|
| Compute a gaussian kernel density estimate:
|
| >>> import numpy as np
| >>> np.random.seed(1)
| >>> X = np.random.random((100, 3))
| >>> tree = BallTree(X) # doctest: +SKIP
| >>> tree.kernel_density(X[:3], h=0.1, kernel='gaussian')
| array([ 6.94114649, 7.83281226, 7.2071716 ])
|
| Compute a two-point auto-correlation function
|
| >>> import numpy as np
| >>> np.random.seed(0)
| >>> X = np.random.random((30, 3))
| >>> r = np.linspace(0, 1, 5)
| >>> tree = BallTree(X) # doctest: +SKIP
| >>> tree.two_point_correlation(X, r)
| array([ 30, 62, 278, 580, 820])
|
| Method resolution order:
| BallTree
| BinaryTree
| builtins.object
|
| Methods defined here:
|
| __new__(*args, **kwargs) from builtins.type
| Create and return a new object. See help(type) for accurate signature.
|
| ----------------------------------------------------------------------
| Data and other attributes defined here:
|
| __pyx_vtable__ = <capsule object NULL>
|
| ----------------------------------------------------------------------
| Methods inherited from BinaryTree:
|
| __getstate__(...)
| get state for pickling
|
| __init__(self, /, *args, **kwargs)
| Initialize self. See help(type(self)) for accurate signature.
|
| __reduce__(...)
| reduce method used for pickling
|
| __setstate__(...)
| set state for pickling
|
| get_arrays(...)
|
| get_n_calls(...)
|
| get_tree_stats(...)
|
| kernel_density(...)
| kernel_density(self, X, h, kernel='gaussian', atol=0, rtol=1E-8,
| breadth_first=True, return_log=False)
|
| Compute the kernel density estimate at points X with the given kernel,
| using the distance metric specified at tree creation.
|
| Parameters
| ----------
| X : array_like
| An array of points to query. Last dimension should match dimension
| of training data.
| h : float
| the bandwidth of the kernel
| kernel : string
| specify the kernel to use. Options are
| - 'gaussian'
| - 'tophat'
| - 'epanechnikov'
| - 'exponential'
| - 'linear'
| - 'cosine'
| Default is kernel = 'gaussian'
| atol, rtol : float (default = 0)
| Specify the desired relative and absolute tolerance of the result.
| If the true result is K_true, then the returned result K_ret
| satisfies ``abs(K_true - K_ret) < atol + rtol * K_ret``
| The default is zero (i.e. machine precision) for both.
| breadth_first : boolean (default = False)
| if True, use a breadth-first search. If False (default) use a
| depth-first search. Breadth-first is generally faster for
| compact kernels and/or high tolerances.
| return_log : boolean (default = False)
| return the logarithm of the result. This can be more accurate
| than returning the result itself for narrow kernels.
|
| Returns
| -------
| density : ndarray
| The array of (log)-density evaluations, shape = X.shape[:-1]
|
| Examples
| --------
| Compute a gaussian kernel density estimate:
|
| >>> import numpy as np
| >>> np.random.seed(1)
| >>> X = np.random.random((100, 3))
| >>> tree = BinaryTree(X) # doctest: +SKIP
| >>> tree.kernel_density(X[:3], h=0.1, kernel='gaussian')
| array([ 6.94114649, 7.83281226, 7.2071716 ])
|
| query(...)
| query(X, k=1, return_distance=True,
| dualtree=False, breadth_first=False)
|
| query the tree for the k nearest neighbors
|
| Parameters
| ----------
| X : array-like, last dimension self.dim
| An array of points to query
| k : integer (default = 1)
| The number of nearest neighbors to return
| return_distance : boolean (default = True)
| if True, return a tuple (d, i) of distances and indices
| if False, return array i
| dualtree : boolean (default = False)
| if True, use the dual tree formalism for the query: a tree is
| built for the query points, and the pair of trees is used to
| efficiently search this space. This can lead to better
| performance as the number of points grows large.
| breadth_first : boolean (default = False)
| if True, then query the nodes in a breadth-first manner.
| Otherwise, query the nodes in a depth-first manner.
| sort_results : boolean (default = True)
| if True, then distances and indices of each point are sorted
| on return, so that the first column contains the closest points.
| Otherwise, neighbors are returned in an arbitrary order.
|
| Returns
| -------
| i : if return_distance == False
| (d,i) : if return_distance == True
|
| d : array of doubles - shape: x.shape[:-1] + (k,)
| each entry gives the list of distances to the
| neighbors of the corresponding point
|
| i : array of integers - shape: x.shape[:-1] + (k,)
| each entry gives the list of indices of
| neighbors of the corresponding point
|
| Examples
| --------
| Query for k-nearest neighbors
|
| >>> import numpy as np
| >>> np.random.seed(0)
| >>> X = np.random.random((10, 3)) # 10 points in 3 dimensions
| >>> tree = BinaryTree(X, leaf_size=2) # doctest: +SKIP
| >>> dist, ind = tree.query(X[0], k=3) # doctest: +SKIP
| >>> print ind # indices of 3 closest neighbors
| [0 3 1]
| >>> print dist # distances to 3 closest neighbors
| [ 0. 0.19662693 0.29473397]
|
| query_radius(...)
| query_radius(self, X, r, count_only = False):
|
| query the tree for neighbors within a radius r
|
| Parameters
| ----------
| X : array-like, last dimension self.dim
| An array of points to query
| r : distance within which neighbors are returned
| r can be a single value, or an array of values of shape
| x.shape[:-1] if different radii are desired for each point.
| return_distance : boolean (default = False)
| if True, return distances to neighbors of each point
| if False, return only neighbors
| Note that unlike the query() method, setting return_distance=True
| here adds to the computation time. Not all distances need to be
| calculated explicitly for return_distance=False. Results are
| not sorted by default: see ``sort_results`` keyword.
| count_only : boolean (default = False)
| if True, return only the count of points within distance r
| if False, return the indices of all points within distance r
| If return_distance==True, setting count_only=True will
| result in an error.
| sort_results : boolean (default = False)
| if True, the distances and indices will be sorted before being
| returned. If False, the results will not be sorted. If
| return_distance == False, setting sort_results = True will
| result in an error.
|
| Returns
| -------
| count : if count_only == True
| ind : if count_only == False and return_distance == False
| (ind, dist) : if count_only == False and return_distance == True
|
| count : array of integers, shape = X.shape[:-1]
| each entry gives the number of neighbors within
| a distance r of the corresponding point.
|
| ind : array of objects, shape = X.shape[:-1]
| each element is a numpy integer array listing the indices of
| neighbors of the corresponding point. Note that unlike
| the results of a k-neighbors query, the returned neighbors
| are not sorted by distance by default.
|
| dist : array of objects, shape = X.shape[:-1]
| each element is a numpy double array
| listing the distances corresponding to indices in i.
|
| Examples
| --------
| Query for neighbors in a given radius
|
| >>> import numpy as np
| >>> np.random.seed(0)
| >>> X = np.random.random((10, 3)) # 10 points in 3 dimensions
| >>> tree = BinaryTree(X, leaf_size=2) # doctest: +SKIP
| >>> print tree.query_radius(X[0], r=0.3, count_only=True)
| 3
| >>> ind = tree.query_radius(X[0], r=0.3) # doctest: +SKIP
| >>> print ind # indices of neighbors within distance 0.3
| [3 0 1]
|
| reset_n_calls(...)
|
| two_point_correlation(...)
| Compute the two-point correlation function
|
| Parameters
| ----------
| X : array_like
| An array of points to query. Last dimension should match dimension
| of training data.
| r : array_like
| A one-dimensional array of distances
| dualtree : boolean (default = False)
| If true, use a dualtree algorithm. Otherwise, use a single-tree
| algorithm. Dual tree algorithms can have better scaling for
| large N.
|
| Returns
| -------
| counts : ndarray
| counts[i] contains the number of pairs of points with distance
| less than or equal to r[i]
|
| Examples
| --------
| Compute the two-point autocorrelation function of X:
|
| >>> import numpy as np
| >>> np.random.seed(0)
| >>> X = np.random.random((30, 3))
| >>> r = np.linspace(0, 1, 5)
| >>> tree = BinaryTree(X) # doctest: +SKIP
| >>> tree.two_point_correlation(X, r)
| array([ 30, 62, 278, 580, 820])
|
| ----------------------------------------------------------------------
| Data descriptors inherited from BinaryTree:
|
| data
|
| idx_array
|
| node_bounds
|
| node_data
|
| ----------------------------------------------------------------------
| Data and other attributes inherited from BinaryTree:
|
| valid_metrics = ['braycurtis', 'russellrao', 'wminkowski', 'matching',...
In [94]:
bt = sklearn.neighbors.BallTree(zz[['id', 'stationName', 'latitude', 'longitude']].ix[:, 2:].values, metric='euclidean')
In [114]:
list(zip(c.id, bt.query_radius(c.ix[:,['lat', 'lon']], 0.0005)))
Out[114]:
[(72, array([0])),
(72, array([0])),
(79, array([1])),
(79, array([1])),
(82, array([2])),
(82, array([2])),
(83, array([3])),
(83, array([3])),
(116, array([4])),
(116, array([4])),
(119, array([5])),
(119, array([5])),
(120, array([6])),
(120, array([6])),
(127, array([7])),
(127, array([7])),
(128, array([8])),
(128, array([8])),
(137, array([9])),
(137, array([9])),
(143, array([10])),
(143, array([10])),
(144, array([11])),
(144, array([11])),
(146, array([12])),
(146, array([12])),
(147, array([13])),
(147, array([13])),
(150, array([14])),
(150, array([14])),
(151, array([15])),
(151, array([15])),
(152, array([16])),
(152, array([16])),
(153, array([17])),
(153, array([17])),
(157, array([18])),
(157, array([18])),
(160, array([], dtype=int64)),
(160, array([], dtype=int64)),
(161, array([19])),
(161, array([19])),
(164, array([20])),
(164, array([20])),
(167, array([21])),
(167, array([21])),
(168, array([22])),
(168, array([22])),
(173, array([23])),
(173, array([23])),
(174, array([24])),
(174, array([24])),
(195, array([25])),
(195, array([25])),
(212, array([26])),
(212, array([26])),
(216, array([27])),
(216, array([27])),
(217, array([28])),
(217, array([28])),
(218, array([], dtype=int64)),
(218, array([], dtype=int64)),
(223, array([29])),
(223, array([29])),
(224, array([30])),
(224, array([30])),
(225, array([31])),
(225, array([31])),
(228, array([32])),
(228, array([32])),
(229, array([33])),
(229, array([33])),
(232, array([34])),
(232, array([34])),
(233, array([651])),
(233, array([], dtype=int64)),
(233, array([651])),
(233, array([], dtype=int64)),
(236, array([35])),
(236, array([35])),
(237, array([36])),
(237, array([36])),
(238, array([37])),
(238, array([37])),
(239, array([38])),
(239, array([38])),
(241, array([39])),
(241, array([39])),
(242, array([40])),
(242, array([40])),
(242, array([40])),
(242, array([40])),
(243, array([41])),
(243, array([41])),
(244, array([42])),
(244, array([42])),
(245, array([43])),
(245, array([43])),
(247, array([44])),
(247, array([44])),
(248, array([45])),
(248, array([45])),
(249, array([46])),
(249, array([46])),
(250, array([642])),
(250, array([642])),
(250, array([642])),
(250, array([642])),
(251, array([47])),
(251, array([47])),
(252, array([48])),
(252, array([48])),
(253, array([49])),
(253, array([49])),
(254, array([50])),
(254, array([50])),
(255, array([], dtype=int64)),
(255, array([], dtype=int64)),
(257, array([51])),
(257, array([51])),
(258, array([52])),
(258, array([52])),
(259, array([53])),
(259, array([53])),
(260, array([54])),
(260, array([54])),
(261, array([55])),
(261, array([55])),
(262, array([56])),
(262, array([56])),
(263, array([], dtype=int64)),
(263, array([], dtype=int64)),
(264, array([57])),
(264, array([57])),
(265, array([58])),
(265, array([58])),
(266, array([59])),
(266, array([59])),
(267, array([60])),
(267, array([60])),
(268, array([61])),
(268, array([61])),
(270, array([62])),
(270, array([62])),
(271, array([644])),
(271, array([644])),
(274, array([63])),
(274, array([63])),
(275, array([64])),
(275, array([64])),
(276, array([65])),
(276, array([65])),
(278, array([66])),
(278, array([66])),
(279, array([], dtype=int64)),
(279, array([67])),
(279, array([67])),
(279, array([67])),
(279, array([67])),
(279, array([], dtype=int64)),
(280, array([68])),
(280, array([68])),
(281, array([69])),
(281, array([69])),
(282, array([70])),
(282, array([70])),
(284, array([71])),
(284, array([71])),
(285, array([72])),
(285, array([72])),
(289, array([73])),
(289, array([73])),
(290, array([], dtype=int64)),
(290, array([], dtype=int64)),
(291, array([74])),
(291, array([74])),
(293, array([75])),
(293, array([75])),
(294, array([], dtype=int64)),
(294, array([], dtype=int64)),
(295, array([76])),
(295, array([76])),
(296, array([77])),
(296, array([77])),
(297, array([78])),
(297, array([78])),
(298, array([], dtype=int64)),
(298, array([], dtype=int64)),
(300, array([], dtype=int64)),
(300, array([], dtype=int64)),
(300, array([], dtype=int64)),
(300, array([], dtype=int64)),
(301, array([79])),
(301, array([79])),
(302, array([80])),
(302, array([80])),
(303, array([81])),
(303, array([81])),
(304, array([82])),
(304, array([82])),
(305, array([83])),
(305, array([83])),
(306, array([84])),
(306, array([84])),
(307, array([85])),
(307, array([85])),
(308, array([86])),
(308, array([86])),
(309, array([87])),
(309, array([87])),
(310, array([88])),
(310, array([88])),
(311, array([89])),
(311, array([89])),
(312, array([90])),
(312, array([90])),
(312, array([90])),
(312, array([90])),
(313, array([91])),
(313, array([91])),
(314, array([92])),
(314, array([92])),
(314, array([], dtype=int64)),
(314, array([], dtype=int64)),
(315, array([93])),
(315, array([93])),
(316, array([94])),
(316, array([94])),
(317, array([95])),
(317, array([95])),
(318, array([], dtype=int64)),
(318, array([], dtype=int64)),
(319, array([96])),
(319, array([], dtype=int64)),
(319, array([], dtype=int64)),
(319, array([96])),
(320, array([97])),
(320, array([97])),
(320, array([97])),
(320, array([97])),
(321, array([98])),
(321, array([98])),
(322, array([99])),
(322, array([99])),
(323, array([100])),
(323, array([100])),
(324, array([101])),
(324, array([101])),
(325, array([102])),
(325, array([102])),
(326, array([103])),
(326, array([103])),
(327, array([104])),
(327, array([104])),
(328, array([105])),
(328, array([105])),
(329, array([], dtype=int64)),
(329, array([], dtype=int64)),
(329, array([], dtype=int64)),
(329, array([], dtype=int64)),
(330, array([106])),
(330, array([106])),
(331, array([107])),
(331, array([107])),
(332, array([108])),
(332, array([108])),
(334, array([109])),
(334, array([109])),
(335, array([110])),
(335, array([110])),
(336, array([111])),
(336, array([111])),
(337, array([112])),
(337, array([112])),
(339, array([113])),
(339, array([113])),
(340, array([114])),
(340, array([114])),
(341, array([115])),
(341, array([115])),
(342, array([116])),
(342, array([116])),
(343, array([117])),
(343, array([117])),
(344, array([118])),
(344, array([118])),
(345, array([119])),
(345, array([119])),
(346, array([120])),
(346, array([120])),
(347, array([], dtype=int64)),
(347, array([121])),
(347, array([121])),
(347, array([], dtype=int64)),
(348, array([122])),
(348, array([122])),
(349, array([123])),
(349, array([123])),
(350, array([124])),
(350, array([124])),
(351, array([125])),
(351, array([125])),
(352, array([126])),
(352, array([126])),
(353, array([127])),
(353, array([127])),
(354, array([128])),
(354, array([128])),
(355, array([129])),
(355, array([129])),
(356, array([130])),
(356, array([130])),
(357, array([131])),
(357, array([131])),
(358, array([132])),
(358, array([132])),
(359, array([133])),
(359, array([133])),
(360, array([134])),
(360, array([134])),
(361, array([135])),
(361, array([135])),
(362, array([136])),
(362, array([136])),
(363, array([137])),
(363, array([137])),
(364, array([138])),
(364, array([138])),
(365, array([139])),
(365, array([139])),
(366, array([140])),
(366, array([140])),
(367, array([], dtype=int64)),
(367, array([], dtype=int64)),
(368, array([141])),
(368, array([141])),
(369, array([142])),
(369, array([142])),
(372, array([143])),
(372, array([143])),
(373, array([144])),
(373, array([144])),
(375, array([487])),
(375, array([487])),
(375, array([487])),
(375, array([487])),
(376, array([145])),
(376, array([145])),
(377, array([146])),
(377, array([146])),
(379, array([147])),
(379, array([147])),
(380, array([148])),
(380, array([148])),
(382, array([149])),
(382, array([149])),
(383, array([150])),
(383, array([150])),
(384, array([151])),
(384, array([151])),
(384, array([], dtype=int64)),
(384, array([], dtype=int64)),
(385, array([152])),
(385, array([152])),
(386, array([153])),
(386, array([153])),
(387, array([154])),
(387, array([154])),
(388, array([155])),
(388, array([155])),
(389, array([156])),
(389, array([156])),
(390, array([157])),
(390, array([157])),
(391, array([158])),
(391, array([158])),
(392, array([159])),
(392, array([159])),
(393, array([160])),
(393, array([160])),
(394, array([161])),
(394, array([161])),
(395, array([162])),
(395, array([162])),
(396, array([163])),
(396, array([163])),
(397, array([164])),
(397, array([164])),
(398, array([165])),
(398, array([165])),
(399, array([166])),
(399, array([166])),
(400, array([167])),
(400, array([167])),
(401, array([168])),
(401, array([168])),
(402, array([169])),
(402, array([169])),
(403, array([170])),
(403, array([170])),
(404, array([], dtype=int64)),
(404, array([], dtype=int64)),
(405, array([171])),
(405, array([171])),
(406, array([172])),
(406, array([172])),
(407, array([173])),
(407, array([173])),
(408, array([174])),
(408, array([174])),
(409, array([175])),
(409, array([175])),
(410, array([176])),
(410, array([176])),
(411, array([177])),
(411, array([177])),
(412, array([178])),
(412, array([178])),
(414, array([179])),
(414, array([179])),
(415, array([180])),
(415, array([180])),
(416, array([181])),
(416, array([181])),
(417, array([182])),
(417, array([182])),
(418, array([183])),
(418, array([183])),
(419, array([184])),
(419, array([184])),
(420, array([185])),
(420, array([185])),
(421, array([186])),
(421, array([186])),
(422, array([187])),
(422, array([187])),
(423, array([188])),
(423, array([188])),
(426, array([189])),
(426, array([189])),
(427, array([190])),
(427, array([], dtype=int64)),
(427, array([190])),
(427, array([], dtype=int64)),
(428, array([191])),
(428, array([191])),
(430, array([192])),
(430, array([192])),
(431, array([], dtype=int64)),
(431, array([], dtype=int64)),
(432, array([193])),
(432, array([193])),
(433, array([194])),
(433, array([194])),
(434, array([195])),
(434, array([195])),
(435, array([196])),
(435, array([196])),
(436, array([197])),
(436, array([197])),
(437, array([198])),
(437, array([198])),
(438, array([199])),
(438, array([199])),
(439, array([200])),
(439, array([200])),
(440, array([201])),
(440, array([201])),
(441, array([202])),
(441, array([202])),
(442, array([203])),
(442, array([203])),
(443, array([204])),
(443, array([204])),
(443, array([204])),
(443, array([204])),
(444, array([205])),
(444, array([205])),
(445, array([206])),
(445, array([206])),
(446, array([207])),
(446, array([207])),
(447, array([208])),
(447, array([208])),
(448, array([209])),
(448, array([209])),
(449, array([210])),
(449, array([210])),
(450, array([211])),
(450, array([211])),
(453, array([212])),
(453, array([212])),
(454, array([213])),
(454, array([213])),
(455, array([214])),
(455, array([214])),
(456, array([215])),
(456, array([215])),
(457, array([216])),
(457, array([216])),
(458, array([217])),
(458, array([217])),
(459, array([218])),
(459, array([218])),
(460, array([219])),
(460, array([219])),
(461, array([220])),
(461, array([220])),
(462, array([221])),
(462, array([221])),
(463, array([], dtype=int64)),
(463, array([], dtype=int64)),
(464, array([], dtype=int64)),
(464, array([], dtype=int64)),
(465, array([222])),
(465, array([222])),
(466, array([223])),
(466, array([223])),
(467, array([224])),
(467, array([224])),
(468, array([225])),
(468, array([225])),
(469, array([226])),
(469, array([226])),
(470, array([227])),
(470, array([227])),
(471, array([228])),
(471, array([228])),
(472, array([229])),
(472, array([229])),
(473, array([230])),
(473, array([230])),
(474, array([231])),
(474, array([231])),
(475, array([663])),
(475, array([663])),
(476, array([232])),
(476, array([232])),
(477, array([233])),
(477, array([233])),
(478, array([234])),
(478, array([234])),
(479, array([235])),
(479, array([235])),
(480, array([236])),
(480, array([236])),
(481, array([237])),
(481, array([237])),
(482, array([238])),
(482, array([238])),
(483, array([239])),
(483, array([239])),
(484, array([240])),
(484, array([240])),
(485, array([241])),
(485, array([241])),
(486, array([242])),
(486, array([242])),
(487, array([243])),
(487, array([243])),
(488, array([244])),
(488, array([244])),
(489, array([], dtype=int64)),
(489, array([], dtype=int64)),
(490, array([245])),
(490, array([245])),
(491, array([246])),
(491, array([246])),
(492, array([247])),
(492, array([247])),
(493, array([248])),
(493, array([248])),
(494, array([249])),
(494, array([249])),
(495, array([250])),
(495, array([250])),
(496, array([251])),
(496, array([251])),
(497, array([252])),
(497, array([252])),
(498, array([253])),
(498, array([253])),
(499, array([254])),
(499, array([254])),
(500, array([255])),
(500, array([255])),
(501, array([256])),
(501, array([256])),
(502, array([257])),
(502, array([257])),
(503, array([258])),
(503, array([258])),
(504, array([259])),
(504, array([259])),
(504, array([259])),
(504, array([259])),
(505, array([260])),
(505, array([260])),
(507, array([261])),
(507, array([261])),
(508, array([262])),
(508, array([262])),
(509, array([263])),
(509, array([263])),
(510, array([], dtype=int64)),
(510, array([], dtype=int64)),
(511, array([264])),
(511, array([264])),
(512, array([], dtype=int64)),
(512, array([], dtype=int64)),
(513, array([265])),
(513, array([265])),
(514, array([266])),
(514, array([266])),
(515, array([267])),
(515, array([267])),
(516, array([268])),
(516, array([268])),
(517, array([271, 269])),
(517, array([475])),
(517, array([271, 269])),
(517, array([271, 269])),
(517, array([475])),
(517, array([271, 269])),
(518, array([270])),
(518, array([270])),
(519, array([271, 269])),
(519, array([271, 269])),
(519, array([271, 269])),
(519, array([], dtype=int64)),
(519, array([], dtype=int64)),
(519, array([271, 269])),
(520, array([272])),
(520, array([272])),
(521, array([483])),
(521, array([483])),
(521, array([483])),
(521, array([483])),
(522, array([273])),
(522, array([273])),
(523, array([274])),
(523, array([274])),
(524, array([275])),
(524, array([275])),
(525, array([276])),
(525, array([276])),
(526, array([277])),
(526, array([277])),
(527, array([], dtype=int64)),
(527, array([278])),
(527, array([278])),
(527, array([], dtype=int64)),
(528, array([279])),
(528, array([279])),
(529, array([280])),
(529, array([280])),
(530, array([281])),
(530, array([281])),
(531, array([282])),
(531, array([282])),
(532, array([283])),
(532, array([283])),
(533, array([284])),
(533, array([284])),
(534, array([285])),
(534, array([285])),
(536, array([286])),
(536, array([286])),
(537, array([287])),
(537, array([287])),
(538, array([], dtype=int64)),
(538, array([], dtype=int64)),
(538, array([], dtype=int64)),
(538, array([], dtype=int64)),
(539, array([288])),
(539, array([288])),
(540, array([], dtype=int64)),
(540, array([289])),
(540, array([], dtype=int64)),
(540, array([289])),
(545, array([290])),
(545, array([290])),
(546, array([291])),
(546, array([291])),
(2000, array([292])),
(2000, array([292])),
(2001, array([], dtype=int64)),
(2001, array([293])),
(2001, array([293])),
(2001, array([], dtype=int64)),
(2002, array([294])),
(2002, array([294])),
(2003, array([295])),
(2003, array([295])),
(2004, array([296])),
(2004, array([296])),
(2005, array([297])),
(2005, array([297])),
(2006, array([298])),
(2006, array([298])),
(2008, array([299])),
(2008, array([299])),
(2009, array([300])),
(2009, array([300])),
(2010, array([301])),
(2010, array([301])),
(2012, array([302])),
(2012, array([302])),
(2017, array([], dtype=int64)),
(2017, array([], dtype=int64)),
(2021, array([303])),
(2021, array([303])),
(2022, array([], dtype=int64)),
(2022, array([], dtype=int64)),
(2022, array([304])),
(2022, array([304])),
(2023, array([305])),
(2023, array([305])),
(3002, array([306])),
(3002, array([306])),
(3014, array([], dtype=int64)),
(3014, array([], dtype=int64)),
(3014, array([], dtype=int64)),
(3014, array([], dtype=int64)),
(3016, array([395])),
(3016, array([307])),
(3016, array([307])),
(3016, array([395])),
(3017, array([], dtype=int64)),
(3017, array([], dtype=int64)),
(3019, array([], dtype=int64)),
(3036, array([], dtype=int64)),
(3039, array([476])),
(3040, array([], dtype=int64)),
(3040, array([], dtype=int64)),
(3041, array([308])),
(3041, array([308])),
(3042, array([309])),
(3042, array([309])),
(3043, array([310])),
(3043, array([310])),
(3044, array([311])),
(3044, array([311])),
(3046, array([312])),
(3046, array([312])),
(3047, array([313])),
(3047, array([313])),
(3048, array([314])),
(3048, array([314])),
(3049, array([315])),
(3049, array([315])),
(3050, array([316])),
(3050, array([316])),
(3052, array([317])),
(3052, array([317])),
(3053, array([318])),
(3053, array([318])),
(3054, array([319])),
(3054, array([319])),
(3055, array([320])),
(3055, array([320])),
(3056, array([321])),
(3056, array([321])),
(3057, array([322])),
(3057, array([322])),
(3058, array([323])),
(3058, array([323])),
(3059, array([324])),
(3059, array([324])),
(3060, array([325])),
(3060, array([325])),
(3061, array([326])),
(3061, array([326])),
(3062, array([327])),
(3062, array([327])),
(3063, array([328])),
(3063, array([328])),
(3064, array([329])),
(3064, array([329])),
(3065, array([330])),
(3065, array([330])),
(3066, array([331])),
(3066, array([331])),
(3067, array([332])),
(3067, array([332])),
(3068, array([333])),
(3068, array([333])),
(3069, array([334])),
(3069, array([334])),
(3070, array([335])),
(3070, array([335])),
(3071, array([336])),
(3071, array([336])),
(3072, array([337])),
(3072, array([337])),
(3073, array([338])),
(3073, array([338])),
(3074, array([339])),
(3074, array([339])),
(3075, array([340])),
(3075, array([340])),
(3076, array([341])),
(3076, array([341])),
(3077, array([342])),
(3077, array([342])),
(3078, array([343])),
(3078, array([343])),
(3079, array([], dtype=int64)),
(3079, array([], dtype=int64)),
(3080, array([344])),
(3080, array([344])),
(3081, array([345])),
(3081, array([345])),
(3082, array([346])),
(3082, array([346])),
(3083, array([347])),
(3083, array([347])),
(3084, array([], dtype=int64)),
(3084, array([], dtype=int64)),
(3085, array([348])),
(3085, array([348])),
(3086, array([349])),
(3086, array([349])),
(3087, array([350])),
(3087, array([350])),
(3088, array([351])),
(3088, array([351])),
(3089, array([], dtype=int64)),
(3089, array([], dtype=int64)),
(3090, array([352])),
(3090, array([352])),
(3091, array([353])),
(3091, array([353])),
(3092, array([354])),
(3092, array([354])),
(3093, array([355])),
(3093, array([355])),
(3094, array([356])),
(3094, array([356])),
(3095, array([357])),
(3095, array([357])),
(3096, array([358])),
(3096, array([358])),
(3097, array([645])),
(3097, array([645])),
(3098, array([656])),
(3098, array([656])),
(3099, array([], dtype=int64)),
(3099, array([], dtype=int64)),
(3100, array([359])),
(3100, array([359])),
(3101, array([360])),
(3101, array([360])),
(3102, array([361])),
(3102, array([361])),
(3103, array([362])),
(3103, array([362])),
(3104, array([307])),
(3104, array([307])),
(3104, array([307])),
(3104, array([307])),
(3105, array([363])),
(3105, array([363])),
(3106, array([364])),
(3106, array([364])),
(3107, array([365])),
(3107, array([365])),
(3108, array([366])),
(3108, array([366])),
(3109, array([367])),
(3109, array([367])),
(3110, array([368])),
(3110, array([368])),
(3111, array([369])),
(3111, array([369])),
(3112, array([370])),
(3112, array([370])),
(3113, array([371])),
(3113, array([371])),
(3114, array([372])),
(3114, array([372])),
(3115, array([373])),
(3115, array([373])),
(3116, array([374])),
(3116, array([374])),
(3117, array([375])),
(3117, array([375])),
(3118, array([376])),
(3118, array([376])),
(3119, array([377])),
(3119, array([377])),
(3120, array([378])),
(3120, array([378])),
(3120, array([378])),
(3120, array([378])),
(3121, array([379])),
(3121, array([379])),
(3122, array([380])),
(3122, array([380])),
(3123, array([381])),
(3123, array([381])),
(3124, array([382])),
(3124, array([382])),
(3125, array([383])),
(3125, array([383])),
(3126, array([384])),
(3126, array([384])),
(3127, array([385])),
(3127, array([385])),
(3128, array([386])),
(3128, array([386])),
(3129, array([387])),
(3129, array([387])),
(3130, array([388])),
(3130, array([388])),
(3131, array([389])),
(3131, array([389])),
(3132, array([390])),
(3132, array([390])),
(3133, array([], dtype=int64)),
(3133, array([], dtype=int64)),
(3133, array([], dtype=int64)),
(3133, array([], dtype=int64)),
(3134, array([391])),
(3134, array([391])),
(3135, array([392])),
(3135, array([392])),
(3136, array([393])),
(3136, array([393])),
(3137, array([394])),
(3137, array([394])),
(3138, array([], dtype=int64)),
(3138, array([], dtype=int64)),
(3139, array([395])),
(3139, array([395])),
(3140, array([396])),
(3140, array([396])),
(3141, array([397])),
(3141, array([397])),
(3142, array([398])),
(3142, array([398])),
(3143, array([399])),
(3143, array([399])),
(3144, array([400])),
(3144, array([400])),
(3145, array([401])),
(3145, array([401])),
(3146, array([402])),
(3146, array([402])),
(3147, array([403])),
(3147, array([403])),
(3148, array([404])),
(3148, array([404])),
(3149, array([], dtype=int64)),
(3149, array([], dtype=int64)),
(3150, array([405])),
(3150, array([405])),
(3151, array([406])),
(3151, array([406])),
(3152, array([407])),
(3152, array([407])),
(3153, array([], dtype=int64)),
(3153, array([], dtype=int64)),
(3154, array([], dtype=int64)),
(3154, array([], dtype=int64)),
(3155, array([408])),
(3155, array([408])),
(3156, array([409])),
(3156, array([409])),
(3157, array([410])),
(3157, array([410])),
(3158, array([411])),
(3158, array([411])),
(3159, array([412])),
(3159, array([412])),
(3160, array([413])),
(3160, array([413])),
(3161, array([414])),
(3161, array([414])),
(3162, array([415])),
(3162, array([415])),
(3163, array([416])),
(3163, array([416])),
(3164, array([417])),
(3164, array([417])),
(3165, array([418])),
(3165, array([418])),
(3166, array([419])),
(3166, array([419])),
(3166, array([419])),
(3166, array([419])),
(3167, array([420])),
(3167, array([420])),
(3168, array([421])),
(3168, array([421])),
(3169, array([422])),
(3169, array([422])),
(3170, array([423])),
(3170, array([423])),
(3171, array([424])),
...]
In [118]:
pd.Series(bt.query_radius(c.ix[:,['lat', 'lon']], 0.0005))
Out[118]:
0 [0]
1 [0]
2 [1]
3 [1]
4 [2]
5 [2]
6 [3]
7 [3]
8 [4]
9 [4]
10 [5]
11 [5]
12 [6]
13 [6]
14 [7]
15 [7]
16 [8]
17 [8]
18 [9]
19 [9]
20 [10]
21 [10]
22 [11]
23 [11]
24 [12]
25 [12]
26 [13]
27 [13]
28 [14]
29 [14]
...
1383 [638]
1384 [639]
1385 [639]
1386 [640]
1387 [640]
1388 [641]
1389 [641]
1390 [642]
1391 [642]
1392 [643]
1393 [643]
1394 [644]
1395 [644]
1396 [645]
1397 [645]
1398 [646]
1399 [646]
1400 []
1401 []
1402 [647]
1403 [647]
1404 [648]
1405 [648]
1406 [649]
1407 [649]
1408 [650]
1409 [650]
1410 [169]
1411 [651]
1412 [651]
dtype: object
In [ ]:
Content source: r-shekhar/NYC-transport
Similar notebooks: