回答編集履歴
3
修正
test
CHANGED
@@ -58,7 +58,7 @@
|
|
58
58
|
|
59
59
|
def get_points(xi, yi):
|
60
60
|
|
61
|
-
print(f"[{bin_x[xi]}, {bin_x[xi + 1]}] x [{bin_y[yi]}, {bin_y[yi + 1]}]")
|
61
|
+
print(f"cell: [{bin_x[xi]}, {bin_x[xi + 1]}] x [{bin_y[yi]}, {bin_y[yi + 1]}]")
|
62
62
|
|
63
63
|
pprint(binned_points[xi, yi])
|
64
64
|
|
@@ -74,7 +74,7 @@
|
|
74
74
|
|
75
75
|
```
|
76
76
|
|
77
|
-
[1, 2] x [5, 6]
|
77
|
+
cell: [1, 2] x [5, 6]
|
78
78
|
|
79
79
|
[array([ 1.88923157, 5.66266405, 30.85553737]),
|
80
80
|
|
2
修正
test
CHANGED
@@ -9,6 +9,8 @@
|
|
9
9
|
```python
|
10
10
|
|
11
11
|
from collections import defaultdict
|
12
|
+
|
13
|
+
from pprint import pprint
|
12
14
|
|
13
15
|
|
14
16
|
|
@@ -26,13 +28,13 @@
|
|
26
28
|
|
27
29
|
x, y, z = points.T
|
28
30
|
|
29
|
-
binx = np.arange(101) # x 方向のビンの端点
|
31
|
+
bin_x = np.arange(101) # x 方向のビンの端点
|
30
32
|
|
31
|
-
biny = np.arange(101) # y 方向のビンの端点
|
33
|
+
bin_y = np.arange(101) # y 方向のビンの端点
|
32
34
|
|
33
35
|
ret = stats.binned_statistic_2d(
|
34
36
|
|
35
|
-
x, y, x, "count", bins=[binx, biny], expand_binnumbers=True
|
37
|
+
x, y, x, "count", bins=[bin_x, bin_y], expand_binnumbers=True
|
36
38
|
|
37
39
|
)
|
38
40
|
|
@@ -44,8 +46,6 @@
|
|
44
46
|
|
45
47
|
|
46
48
|
|
47
|
-
# ビンのインデックスを指定すると、そのビンに属する点一覧を参照できる索引を作っておく。
|
48
|
-
|
49
49
|
binned_points = defaultdict(list)
|
50
50
|
|
51
51
|
for i, j, p in zip(bin_xi, bin_yi, points):
|
@@ -56,15 +56,25 @@
|
|
56
56
|
|
57
57
|
# (1 <= x < 2) x (5 <= y < 6) の範囲の点一覧
|
58
58
|
|
59
|
-
f
|
59
|
+
def get_points(xi, yi):
|
60
60
|
|
61
|
+
print(f"[{bin_x[xi]}, {bin_x[xi + 1]}] x [{bin_y[yi]}, {bin_y[yi + 1]}]")
|
62
|
+
|
61
|
-
pprint(binned_points[
|
63
|
+
pprint(binned_points[xi, yi])
|
64
|
+
|
65
|
+
|
66
|
+
|
67
|
+
|
68
|
+
|
69
|
+
get_points(1, 5)
|
62
70
|
|
63
71
|
```
|
64
72
|
|
65
73
|
|
66
74
|
|
67
75
|
```
|
76
|
+
|
77
|
+
[1, 2] x [5, 6]
|
68
78
|
|
69
79
|
[array([ 1.88923157, 5.66266405, 30.85553737]),
|
70
80
|
|
1
修正
test
CHANGED
@@ -1,8 +1,8 @@
|
|
1
|
-
質問の内容は [0, 100] x [0, 100] の範囲をそれぞれ100分割して、10000個のセルを作成し、各点がどのセルに属するかを調べる問題であるため、これは2次元にヒストグラムを作成する際の過程と同じです。
|
1
|
+
質問の内容は [0, 100] x [0, 100] の範囲を `xy` 方向にそれぞれ100分割して、10000個のセルを作成し、各点がどのセルに属するかを調べる問題であるため、これは2次元にヒストグラムを作成する際の過程と同じです。
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
|
5
|
+
[scipy.stats.binned_statistic_2d](https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.binned_statistic_2d.html) を使って、2次元ヒストグラムを作成すれば、その結果として、各点がどのセルに属するかの情報も得られます。
|
6
6
|
|
7
7
|
|
8
8
|
|