我有一个多维数组的列表,需要访问每个数组并对其进行操作。模拟数据:
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
在每个函数上都调用了该函数array
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]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句