繁体   English   中英

如何将数组拆分为 10 个单独的二维数组?

[英]How do I split an Array into 10 individual 2D arrays?

所以我有一个包含 10000 个笛卡尔坐标的大数组。

points_Cartesian = np.random.random((10000, 2))

我想将数组拆分为 x 坐标和 y 坐标,并将它们分成 1000 组。

目前,我有这段代码将它分成 1000 个块,但我不太清楚如何将 x 和 y 分成两个单独的数组。

x = [points_Cartesian[x: x + 1000] for x in range(0, len(points_Cartesian), 1000)]

我有一种感觉,我所缺少的只是一些我必须添加的简单代码,但我不能完全正确。

是的,你真的只遗漏了一小部分。 您可以通过以下方式访问 numpy 数组的列:

np_array[row,col]

所以你需要做的就是:

x = [points_Cartesian[x: x + 1000, 0] ...]
y = [points_Cartesian[x: x + 1000, 1] ...]

或总共(缩短打印):

import numpy as np

points_Cartesian = np.random.random((10, 2))

print(points_Cartesian)

x = [points_Cartesian[x: x + 2, 0] for x in range(0, len(points_Cartesian), 2)]
y = [points_Cartesian[x: x + 2, 1] for x in range(0, len(points_Cartesian), 2)]

print(x)
print(y)

出去:

[[0.38157813 0.04811649]
 [0.29566672 0.20884901]
 [0.01248476 0.46630594]
 [0.13328297 0.13989798]
 [0.70504099 0.20868818]
 [0.07876386 0.5707934 ]
 [0.04177351 0.82604852]
 [0.76085304 0.04226348]
 [0.33315792 0.81473101]
 [0.30193693 0.24475062]]

[array([0.38157813, 0.29566672]), array([0.01248476, 0.13328297]), array([0.70504099, 0.07876386]), array([0.04177351, 0.76085304]), array([0.33315792, 0.30193693])]
[array([0.04811649, 0.20884901]), array([0.46630594, 0.13989798]), array([0.20868818, 0.5707934 ]), array([0.82604852, 0.04226348]), array([0.81473101, 0.24475062])]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM