python - 根据ndarray中的索引设置值的通用方法?
问题描述
我在下面写了这个,但对我来说它看起来很丑/笨拙。
有没有更好的方法来遍历所有元素,同时跟踪索引
(即跟踪我在哪个地址)并设置一个
作为索引函数的值?
如果我有更多维度,我可以想象这会变得更加丑陋。
应该有更好的方法来做到这一点。
import numpy as np
def f(i,j,k,l):
return i + 2 * j+ 3 * k + 4 * l
A = np.zeros((3,4,7,8), dtype=int)
i1 = i2 = i3 = i4 = -1
i1 = -1
for r1 in A:
i1 += 1
i2 = -1
for r2 in r1:
i2 += 1
i3 = -1
for r3 in r2:
i3 += 1
i4 = -1
for r4 in r3:
i4 += 1
v = f(i1, i2, i3, i4)
print ("Setting value {0} at ({1}, {2}, {3}, {4})".format(v, i1, i2, i3, i4))
A[i1, i2, i3, i4] = v
print(A)
解决方案
有np.fromfunction
:
np.fromfunction(f,(3,4,7,8),dtype=int)
只要f
是“numpy 感知”,它就可以工作,即可以处理数组参数。
推荐阅读
- amazon-web-services - AWS SSM:aws:domainJoin 所需的权限?
- flutter - The type 'ChangeNotifierProxyProvider' is declared with 2 type parameters, but 3 type arguments were given
- r - 如何使用 R 正则表达式来捕捉希伯来语单词?
- flutter - 颤振:禁用上一个步进单击
- html - 添加页面计数器以使用 @page 打印页面 CSS
- c# - 如何在 WinForms 中处理“在应用程序配置文件中找不到名为‘RestaurentEntities’的连接字符串”
- powerbi - 如何添加带有用户选择的参数并附加到 API 请求的下拉列表?
- kubernetes - 如何明确定义 Kubernetes 服务的端点
- database - Pentaho执行SQL语句
- unit-testing - 如何在开玩笑的单元测试中使用导入的 graphql 文件?