问题是,每当我输入ndarray时,它就会以float形式给出值。我只需要int的输出。
我尝试过y = int(y1) 但显示TypeError:只能将size-1数组转换为Python标量。
var = (4, 5, 6)
length = len(var)
print(length)
from numpy import empty
y1 = empty([len(var)])
y = int(y1)
print(y)
i = 0
for x in var:
print(x)
print("i = %i" % i)
y[i] = int(x)
print(y[i])
i = i + 1
print(var)
print(y)
我只希望输出为int类型而不是浮点型。我也尝试在for循环内部更改dtype,同时每次分配值。有什么更好的方法吗?
答案 0 :(得分:1)
您可以这样指定dtype
:
>>> import numpy as np
>>> np.empty((3,5), dtype=np.int)
array([[ 805306368, -244667706, 382337028, 979432584, 360625744],
[ 357830816, 357820336, 979432584, 979432576, 360007872],
[ 382203840, 382204224, 382476528, 379622304, 357830816]])
答案 1 :(得分:1)
要创建具有特定类型的空numpy数组,请使用:
import numpy as np
shape = (1,2,3)
arr = np.empty(shape=shape, dtype=np.int32)