【发布时间】:2014-03-29 23:15:53
【问题描述】:
代码:
n=3
x=np.fromfunction(lambda i,j: (i==1)and(j==1), (n,n), dtype=int)
导致“ValueError:一个元素多于一个的数组的真值不明确。使用a.any()或a.all()”
有什么问题?
【问题讨论】:
代码:
n=3
x=np.fromfunction(lambda i,j: (i==1)and(j==1), (n,n), dtype=int)
导致“ValueError:一个元素多于一个的数组的真值不明确。使用a.any()或a.all()”
有什么问题?
【问题讨论】:
文档具有误导性。该函数不会使用每个单元格的索引重复调用;它被调用一次,索引数组一次代表所有单元格的索引。直接返回这一函数调用的返回值:
>>> 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
【讨论】: