python - NumPy map 计算取决于索引

标签 python arrays numpy

我有一个形状为 (Height, Width) 的 NumPy 数组。现在我想计算这个数组中存在的所有元素的值。该值是元素位置 [x,y] 的函数。

假设我想为所有元素分配值 (x**2+y**2)/2。我想在不使用 for 循环的情况下执行此操作。有没有办法做到这一点?

最佳答案

您还可以查看 meshgridmgrid 和/或 indices:

>>> H, W = 4,5
>>> x, y = np.indices([H, W])
>>> m
array([[  0. ,   0.5,   2. ,   4.5,   8. ],
       [  0.5,   1. ,   2.5,   5. ,   8.5],
       [  2. ,   2.5,   4. ,   6.5,  10. ],
       [  4.5,   5. ,   6.5,   9. ,  12.5]])

这是有效的,因为 xy 是具有适当的 xy 坐标的数组:

>>> x
array([[0, 0, 0, 0, 0],
       [1, 1, 1, 1, 1],
       [2, 2, 2, 2, 2],
       [3, 3, 3, 3, 3]])
>>> y
array([[0, 1, 2, 3, 4],
       [0, 1, 2, 3, 4],
       [0, 1, 2, 3, 4],
       [0, 1, 2, 3, 4]])

meshgridmgrid 允许更精细的控制,例如

>>> x, y = np.meshgrid(np.linspace(0, 1, 5), np.linspace(0, 10, 3))
>>> x
array([[ 0.  ,  0.25,  0.5 ,  0.75,  1.  ],
       [ 0.  ,  0.25,  0.5 ,  0.75,  1.  ],
       [ 0.  ,  0.25,  0.5 ,  0.75,  1.  ]])
>>> y
array([[  0.,   0.,   0.,   0.,   0.],
       [  5.,   5.,   5.,   5.,   5.],
       [ 10.,  10.,  10.,  10.,  10.]])

关于python - NumPy map 计算取决于索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24103624/

相关文章:

python - 在 Django 中使用 mod_wsgi 找不到请求的 URL

python - 根据内容查找Python文件

JavaScript 在数组内迭代数组的意外行为

c++ - C++动态数组将每次添加的大小增加1-错误

python - 超过 40 个导致 kernelpca scikit learn 错误的功能

Python 变量 "resetting"

c - 我的 C 语法的左递归错误

python - 使用 numpy/scipy 进行形状识别(也许是分水岭)

python - 如何更快地处理nparrays

python - 如何在 Odoo 12v 中从销售订单、发票、采购订单、账单等 PDF 报告的第二页中删除页眉和页脚