numpy.where返回int而不是float

时间:2019-05-16 13:04:41

标签: python python-3.x numpy

numpy.where正在将float数组转换为int

使用jupyter笔记本

x = np.array([1.0, 2.3, 1.3, 2.9])
print(x)
print(np.where(x>.1))

我期望这样的结果:[1.0, 2.3, 1.3, 2.9]。我确定我缺少什么。

1 个答案:

答案 0 :(得分:3)

numpy.where为您提供条件成立的索引列表。您可能想在实际数组中使用这些索引来获取元素

In [44]: import numpy as np                                                                                                                                                                             

In [45]: x = np.array([1.0, 2.3, 1.3, 2.9])                                                                                                                                                             

In [47]: np.where(x>.1)                                                                                                                                                                                 
Out[47]: (array([0, 1, 2, 3]),)

In [48]: x[np.where(x>.1)]                                                                                                                                                                              
Out[48]: array([1. , 2.3, 1.3, 2.9])