回答編集履歴

3

修正

2020/06/14 11:16

投稿

tiitoi
tiitoi

スコア21956

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

修正

2020/06/14 11:16

投稿

tiitoi
tiitoi

スコア21956

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
- from pprint import pprint
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[1, 5])
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

修正

2020/06/14 11:15

投稿

tiitoi
tiitoi

スコア21956

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
- 2次元のヒストグラムを作成する [scipy.stats.binned_statistic_2d](https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.binned_statistic_2d.html) を使って、2次元ヒストグラムを作成すれば、その結果として、各点がどのセルに属するかの情報も得られます。
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