【发布时间】:2019-06-05 13:05:32
【问题描述】:
这可能是一个愚蠢的问题,但我找不到类似的问题(目前)。 例如,我定义为函数 f(x,y)
def f(x, y):
return x+y
现在我想输出一个 2D numpy 数组,一个元素的值等于它的索引总和,例如,如果我想要一个 2x2 数组:
arr = [[0, 1],
[1, 2]]
如果我想要一个 3x3 数组,那么输出应该是:
arr = [[0, 1, 2],
[1, 2, 3],
[2, 3, 4]]
逐个赋值效率不高,尤其是数组大小很大的时候,比如10000*10000,这也是对numpy速度快的浪费。虽然这听起来很基本,但我想不出一个简单快捷的解决方案。最常见和最有效的方法是什么?
顺便说一下,求和指数只是一个例子。我希望该方法也可以推广到任意函数,例如,
def f(x,y):
return np.cos(x)+np.sin(y)
甚至是更高维的数组,例如 4x4 数组。
【问题讨论】:
-
只给定一个函数(有两个参数,比如
f(x, y)),我想输出一个二维数组,其中数组的每个元素都等于f(i, j),其中i,j是数组中元素的索引。 -
@erip 我相信
arr = [[0, 1], [1, 2]]是 any 2x2 数组的输出。添加任何 2x2 数组的每个元素的行索引和列索引(从 0 开始)和... -
@TrebledJ 没错。
arr是输出。0来自指数 (0,0),将它们相加得出 0。2来自指数 (1,1),将它们相加得出 2。
标签: python arrays function numpy