使用lis中包含的不同numpy数组中的元素

2024-09-29 23:25:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个清单,例如:

a=[np.array([1,2,3]),np.array([4,5,6]),np.array([7,8,9])]

现在,我想用相同的索引访问每个列表的每个元素,并用它执行一些操作。假设每个数组具有相同索引的值的平均值

我可以访问每个列表索引,例如

a[0][2]

结果是3。但是下面的方法不起作用

meanedValues=[None]*3
for j in range(len(a[0])):                           #given all arrays have the same length
     meanedValues[j]=mean(a[:][j]) 

结果是表示其selve中的每个数组,而不是每个列表中相同索引的每个元素

以及

meanedValues=[None]*3
for j in range(len(a[0])):                           #given all arrays have the same length
     meanedValues[j]=mean(a[:](0,j)) 

返回:TypeError:“list”对象不可调用


Tags: innone元素列表forlenhavenp
2条回答

您只需使用一个2d numpy数组,它本机支持您所需的操作:

a= np.array([np.array([1,2,3]),
             np.array([4,5,6]),
             np.array([7,8,9])])

print(a)

>>> array([[1, 2, 3],
           [4, 5, 6],
           [7, 8, 9]])

# get 2nd values
print(a[:, 1])

>>> array([2, 5, 8])


# get mean values
print(np.mean(a, axis=0))

>>>  array([ 4.,  5.,  6.])

如果所有数组的长度都相同,则可以将列表转换为二维数组,然后取轴0上的平均值:

np.asarray(a).mean(0)
# array([ 4.,  5.,  6.])

相关问题 更多 >

    热门问题