gpt4 book ai didi

python - where=False 时 numpy 函数的默认值是多少?

转载 作者:太空宇宙 更新时间:2023-11-04 09:56:40 26 4
gpt4 key购买 nike

ufunc documentation状态:

where

New in version 1.7.Accepts a boolean array which is broadcast together with the operands. Values of True indicate to calculate the ufunc at that position, values of False indicate to leave the value in the output alone.

当未给出 out 时,默认行为是什么?

我观察到一些对我来说没有意义的行为:

import numpy as np
a,b = np.ones((2,2))
np.add(a,b,where = False) #returns 0
np.exp(a, where = False) #returns 1
np.sin(a, where = False) #returns 1
np.sign(a, where = False) #returns 0
np.reciprocal(a, where = False) #returns 0

有谁知道根本原因/行为?特别是 np.reciprocal 没有任何意义,因为倒数永远不会为 0

编辑:行为更加复杂:

a,b = np.ones(2)
np.add(a,b,where = False) #returns 6.0775647498958414e-316
a,b = 1,1
np.add(a,b, where = False) #returns 12301129,
#running this line several times doesn't give the same result every time...

我正在使用 Numpy 版本 1.11.1

最佳答案

它看起来像垃圾,因为它确实是垃圾 - 已被垃圾回收的内存。

无论您调用什么函数,都会留出一 block 内存来放入结果,但永远不会将任何结果放在那里,因为 where=False。您将获得与 np.empty 相同的值 - 即在函数分配它之前该内存块中的任何垃圾。

关于python - where=False 时 numpy 函数的默认值是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45543505/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com