我试图将下面的转换为整数
我有一个变量p,如下所示
array([0.09641092, 0.02070604, 0.21679783, ..., 0.06453979, 0.02907993, 0.12129478])
我想根据阈值转换数字
thres = 0.5
然后转换
p1 = np.int(p > thres)
但我得到以下错误
TypeError:只能将size-1数组转换为Python标量
您想要转换数组的类型。因此,请改为:
(p > thres).astype(np.int)
np.int
只是int
,普通的Python内置类型。我认为它甚至在numpy
命名空间中只是为了向后兼容。它不是NumPy类型,您无法通过调用它来对数组执行类型转换。
np.int_
是默认情况下dtype int
值转换为的NumPy类型,它是你执行像some_array.astype(int)
这样的事情时使用的类型。它对应于C long
。 np.int_
,你可以调用类型转换整个数组:
>>> x = numpy.array([True, False, True])
>>> numpy.int_(x)
array([1, 0, 1])
但是使用astype
更常见:
>>> x.astype(int)
array([1, 0, 1])
import numpy as np
a = np.array([0.09641092, 0.02070604, 0.21679783, 0.06453979, 0.02907993, 0.12129478])
t = 0.05
for i in range(len(a)):
if(a[i]>t):
print(a[i])
输出:
0.09641092
0.21679783
0.06453979
0.12129478
要么
print(np.int(a[i]))
输出:
0
0
0
0