我得到了一个多维numpy数组,x
如下所示:
array([ array([ 398.24475098, -196.1497345 , -110.79341125, ..., -1937.22399902,
-6158.89355469, 1742.84399414], dtype=float32),
array([ 32.27750397, -171.73371887, -342.6328125 , ..., -4727.4296875 ,
-4727.4296875 , -2545.10375977], dtype=float32),
array([ 785.83660889, -234.88890076, 140.49914551, ..., -7982.19482422,
-2127.640625 , -1434.77160645], dtype=float32),
...,
array([ 181.93313599, -146.41413879, -416.02978516, ...,
-4517.796875 , 10491.84570312, -6604.39550781], dtype=float32),
array([ -1.37602341e+02, 1.71733719e+02, 7.13068867e+00, ...,
8.60104688e+03, 1.39115127e+04, 3.31622314e+03], dtype=float32),
array([ 453.17272949, 152.49285889, 260.41452026, ...,
19061.60742188, 11232.8046875 , 7312.13964844], dtype=float32)], dtype=object)
我试图访问每一列(特别是我试图获取每一列的标准差)我找到了,我试过,
>>> x[:,0]
但这返回了一个错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: too many indices for array
可以将这个结构化数组转换成一个简单的2D numpy数组来访问列吗或者有没有直接访问这些列的好方法?
谢谢!
编辑
有关此阵列的更多信息:
>>> x.shape
(8685,)
>>> x[0].shape # Same for x[1], x[2], ...
(3524,)
如果有帮助的话,我使用this answer包中的
tree2array
函数来生成这个数组。 最佳答案
不知道你是怎么做的,但似乎对我有用
直接从提示
a=np.zeros((2,6),dtype=np.float32)
>>> a
array([[ 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0.]], dtype=float32)
>>> a[:,2]=1
>>> a
array([[ 0., 0., 1., 0., 0., 0.],
[ 0., 0., 1., 0., 0., 0.]], dtype=float32)
关于python - 访问结构化数组的NumPy数组的列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45369514/