我有一个多维数组列表,需要访问每个数组并对它们进行操作。 模拟数据:
list_of_arrays = map(lambda x: x*np.random.rand(2,2), range(4))
list_of_arrays
[array([[ 0., 0.],[ 0., 0.]]), array([[ 0.39881669, 0.65894242],[ 0.10857551, 0.53317832]]), array([[ 1.39833735, 0.1097232 ],[ 1.89622798, 1.79167888]]), array([[ 1.98242087, 0.3287465 ],[ 1.2449321 , 2.27102359]])]
我的问题是:
1- 如何迭代 list_of_arrays
,以便每次迭代都返回每个单独的数组?
例如迭代 1 返回 list_of_arrays[0]
...最后一次迭代返回 list_of_arrays[-1]
2-我如何使用每次迭代的结果作为另一个函数的输入?
我对 Python 还很陌生。我的第一个想法是在 for 循环中定义函数,但我不清楚如何实现它:
for i in list_of_array:
def do_something():
我想知道是否有人对此有好的解决方案。
最佳答案
您在其他地方定义该函数,然后在循环内调用它。您不必在循环内一遍又一遍地定义该函数。
def do_something(np_array):
# work on the array here
for i in list_of_array:
do_something(i)
作为一个工作示例,假设我在每个数组
上调用sum
函数
def total(np_array):
return sum(np_array)
现在我可以在 for
循环中调用它
for i in list_of_arrays:
print total(i)
输出
[ 0. 0.]
[ 1.13075762 0.87658186]
[ 2.34610724 0.77485066]
[ 1.08704527 2.59122417]
关于python - 迭代 numpy 数组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24780464/