我有非小的(10^6)numpy数组,然后我对它们进行一些计算。如果值大于某个值X,其中一个函数只返回0,否则返回1。我知道这是一个简单的bool检查的工作:
x = np.arange(100)
x = np.array(x > X, dtype=int)
但是,考虑到我正在创建一个新的数组并进行转换,这看起来非常浪费。有什么办法吗?沿x.round()行的某个值(但该值将返回0或1)。你知道吗
还是我的担心完全没有根据?你知道吗
谢谢!
第
附言:是的,numpy符合要求。你知道吗
Tags:
通常情况下,您可以通过传递
bool
数组而不受影响。在对数值数组进行算术运算时,bool
数组将根据需要向上转换,将True
视为1
,将False
视为0
。你知道吗但是,如果您真的需要最有效的方法来获得真正的
int
数组,请使用np.greater()
ufunc。与所有ufunc一样,它接受一个out=
关键字参数,该参数将用作预先分配的数组,以将结果填充到其中。它将动态转换每个元素,这样就不会创建中间的bool
数组。你知道吗相关问题 更多 >
编程相关推荐