2D 그리드의 각 노드에 대한 통계를 계산해야합니다. 이 작업을 쉽게 수행 할 수있는 방법은 두 가지 범위의 십자가 조인 (일명 데카르트 제품)을 사용하는 것입니다. 나는 pandas
dataframe이 변환 할 때숫자 배열이 팬더 데이터 프레임으로 변환 됨 값 프레임
def node_grid(x_range, y_range, x_increment, y_increment):
x_min = float(x_range[0])
x_max = float(x_range[1])
x_num = (x_max - x_min)/x_increment + 1
y_min = float(y_range[0])
y_max = float(y_range[1])
y_num = (y_max - y_min)/y_increment + 1
x = np.linspace(x_min, x_max, x_num)
y = np.linspace(y_min, y_max, y_num)
ng = list(product(x, y))
ng = np.array(ng)
return ng, x, y
그러나이 값을 삭제 :이이 기능으로 numpy
를 사용하여 구현. 예를 들어
In [2]: ng = node_grid(x_range=(-60, 120), y_range=(0, 40), x_increment=0.1, y_increment=0.1)
In [3]: ng[0][(ng[0][:,0] > -31) & (ng[0][:,0] < -30) & (ng[0][:,1]==10)]
Out[3]: array([[-30.9, 10. ],
[-30.8, 10. ],
[-30.7, 10. ],
[-30.6, 10. ],
[-30.5, 10. ],
[-30.4, 10. ],
[-30.3, 10. ],
[-30.2, 10. ],
[-30.1, 10. ]])
In [4]: node_df = pd.DataFrame(ng[0])
node_df.columns = ['xx','depth']
print(node_df[(node_df.depth==10) & node_df.xx.between(-30,-31)])
Out[4]:Empty DataFrame
Columns: [xx, depth]
Index: []
dataframe가 비어 있지 : 그들은 팬더 어레이 투입되는 경우 NumPy와 배열
In [5]: print(node_df.head())
Out[5]: xx depth
0 -60.0 0.0
1 -60.0 0.1
2 -60.0 0.2
3 -60.0 0.3
4 -60.0 0.4
값이 감소되고있다. 왜?
from itertools import product
당신이 사용하고있는'product' 함수를 지정하십시오 수 없습니다. 게시 된 코드는 나를 위해 작동하지 않습니다. – Ascurion