如何使用Empty()函数创建具有int值的ndarray?

时间:2019-06-11 15:46:58

标签: python ipython

问题是,每当我输入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,同时每次分配值。有什么更好的方法吗?

2 个答案:

答案 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)