【问题标题】:NumPy creation by fromfunction error由 fromfunction 错误创建 NumPy
【发布时间】: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()”

有什么问题?

【问题讨论】:

    标签: python numpy


    【解决方案1】:

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

    >>> 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
    

    【讨论】:

    • 我会支持“文档具有误导性”的说法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-13
    • 1970-01-01
    • 2021-07-09
    • 2013-10-05
    • 2013-08-21
    • 1970-01-01
    相关资源
    最近更新 更多