【问题标题】:Numpy: copyto returns NoneNumpy:copyto 返回无
【发布时间】:2018-12-26 21:19:52
【问题描述】:

当我使用np.copyto 时,它总是返回None

import numpy as np
a = np.random.random((3,3))
b = np.zeros_like(a)
b[:,0] = 100
b_nonzero_mask = b.astype(bool)
c = np.copyto(a, b, where=b_nonzero_mask)
print(c)  # None

这个函数应该怎么用?

【问题讨论】:

    标签: python arrays numpy multidimensional-array mask


    【解决方案1】:

    在 Python 中,默认情况下,如果函数没有 return 语句,则返回 Nonenp.copyto 定义不返回任何内容。相反,它会在原地重写a

    所以,你必须事先复制a

    import numpy as np
    a = np.random.random((3,3))
    b = np.zeros_like(a)
    b[:,0] = 100
    b_nonzero_mask = b.astype(bool)
    c = np.copy(a)
    np.copyto(c, b, where=b_nonzero_mask)
    

    【讨论】:

    • 如果他这样做了又会怎样?
    • 回答您自己的问题很好,但您在回答中提供的代码甚至不起作用。
    • @user3483203 我打错了(写的是 3 而不是 0)。现在可以了。
    猜你喜欢
    • 1970-01-01
    • 2018-01-18
    • 2018-08-11
    • 2018-05-31
    • 2011-01-03
    • 2015-08-17
    • 2014-10-20
    • 2021-09-12
    • 2020-02-14
    相关资源
    最近更新 更多