подсчет точек в ячейках сетки в python, np.histogramdd - PullRequest
0 голосов
/ 09 октября 2019

У меня есть числовой массив, включающий координаты точек в 3-мерном пространстве:

import numpy as np 
testdata=np.array([[0.5,0.5,0.5],[0.6,0.6,0.6],[0.7,0.7,0.7],[1.5,0.5,0.5],[1.5,0.6,0.6],[0.5,1.5,0.5],[0.5,1.5,1.5]])

Каждая строка для одной частицы включает 3 координаты (xyz). В этом примере 8 точек. Есть ли какой-нибудь пакет Python для преобразования трехмерного пространства и подсчета частиц в каждой ячейке? Я попытался np.histogramdd таким образом

xcoord=testdata[:,0]
ycoord=testdata[:,1]
zcoord=testdata[:,2]
xedg=[0,1,2]
yedg=[0,1,2]
zedg=[0,1,2]
histo=np.histogramdd([xcoord,ycoord,zcoord],bins=(xedg,yedg,zedg),range=[[0,2],[0,2],[0,2]])

, и кажется, что это работает, но индексация странная. Я имею в виду, что окончательный массив, который возвращает np.histogramdd, не имеет значимой индексации относительно исходных координат. Есть ли другой способ для скрининга трехмерного пространства и подсчета количества точек в каждой ячейке?

1 Ответ

0 голосов
/ 09 октября 2019

Не уверен, что это то, что вам нужно, но вы можете использовать Панд.

import pandas as pd
coords = [[1,2,3],[4,5,6],[7,8,9]]
df_coords = pd.DataFrame(coords)
df_coords.count()
...