繁体   English   中英

根据另一个np.array python的值设置np.array的值

[英]setting values of np.array based on the values of another np.array python

我有一个numpy数组A,其中包含0到1之间的值。我想创建另一个numpy数组y,以便如果A(i)> = 0.5且y(i)=,则y(i)= 1的值。如果A(i)<0.5,则为0。 我使用了以下python代码:

f=lambda v: 1 if v>0.5 else 0  
vf=np.vectorize(f)  
Y=vf(A)  

有没有办法在一行命令而不是三行命令中执行此功能?

使用向量化比较并将结果强制转换为int:

(A >= 0.5).astype(int)

A >= 0.5会生成一个数组,其中元素>= 0.5比较结果,并且astype(int)True转换为1 ,将False0

如果可以使用单字节整数

(A >= 0.5).view(np.int8)

快一点。 astype view不同,它不会创建新数据。 它重新解释其操作数的数据缓冲区

import numpy

A = numpy.random.rand(10)
print(A)

数组A

[ 0.76702953  0.89697124  0.54573644  0.48079479  0.39556016  0.50646642
  0.45998033  0.11159339  0.69824144  0.37451713]

创建另一个numpy数组y ,如果A(i) >= 0.5y(i) = 1 ,如果A(i) < 0.5y(i) = 0

Y = (A >= 0.5).astype(int)
print(Y)

数组Y

[1 1 1 0 0 1 0 0 1 0]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM