我还没有深入了解关键概念numpy
。
我想创建一个 3 维数组并用函数调用的结果填充每个单元格 - 即该函数将使用不同的索引多次调用并返回不同的值。
注意:自从写了这个问题以来,文档已经更新得更清楚了。
我可以用零(或空)创建它,然后用 for 循环覆盖每个值,但直接从函数中填充它似乎更干净。
fromfunction
听起来很完美。阅读文档,听起来该函数每个单元格调用一次。
但是当我真正尝试它时...
from numpy import *
def sum_of_indices(x, y, z):
# What type are X, Y and Z ? Expect int or duck-type equivalent.
# Getting 3 individual arrays
print "Value of X is:"
print x
print "Type of X is:", type(x)
return x + y + z
a = fromfunction(sum_of_indices, (2, 2, 2))
我希望得到类似的东西:
Value of X is:
0
Type of X is: int
Value of X is:
1
Type of X is: int
重复4次。
我得到:
Value of X is:
[[[ 0. 0.]
[ 0. 0.]]
[[ 1. 1.]
[ 1. 1.]]]
[[[ 0. 0.]
[ 1. 1.]]
[[ 0. 0.]
[ 1. 1.]]]
[[[ 0. 1.]
[ 0. 1.]]
[[ 0. 1.]
[ 0. 1.]]]
Type of X is: <type 'numpy.ndarray'>
该函数只被调用一次,并且似乎返回整个数组作为结果。
基于对索引函数的多次调用来填充数组的正确方法是什么?