python - 迭代 numpy 数组列表

标签 python arrays numpy

我有一个多维数组列表,需要访问每个数组并对它们进行操作。 模拟数据:

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/

相关文章:

python - object.__new__() 没有参数

python - 构造与函数或其他数组成比例的数组间距

python - 在 python 中实现 T9 字典时输出错误

python - 如何使 Python、R 和 MongoDB 的 Docker 容器镜像协同工作

javascript - 添加对象数组javascript的值

php - 如何在比较数组的第一个值后检索数组的第二个值?

arrays - VBA 数组和字符串错误

python - 从第 k 个最后一个元素到第 k 个第一个元素的 numpy 索引

python - Python 中的高效数组替换

python - 具有稀疏矩阵的 scipy cdist