由函数错误创建的NumPy

时间:2014-02-26 20:55:27

标签: python numpy

代码:

n=3
x=np.fromfunction(lambda i,j: (i==1)and(j==1), (n,n), dtype=int)

导致“ValueError:具有多个元素的数组的真值是不明确的。使用a.any()或a.all()”

有什么问题?

1 个答案:

答案 0 :(得分:4)

文档具有误导性。不用每个单独的单元格的索引重复调用该函数;它被调用一次,索引数组一次表示所有单元格的索引。直接返回此一个函数调用的返回值:

>>> numpy.fromfunction(lambda *args: 1, (2, 2))
1
>>> numpy.fromfunction(lambda *args: args, (2, 2))
(array([[ 0.,  0.],
       [ 1.,  1.]]), array([[ 0.,  1.],
       [ 0.,  1.]]))

您需要将功能更改为以这种方式运行:

lambda i, j: (i==1) & (j==1)
#                   ^ elementwise bitwise and