数组的元素设置为整数而不是float

时间:2019-04-15 12:19:24

标签: python numpy

我在将数组的元素设置为浮点数时遇到问题。

C = [(np.random.randint(-10,10),np.random.randint(-10,10)) for i in range(3)]
C = np.array(C)
C[0,0] = 1.654
print(C[0,0])
  

1

我想知道为什么不是1.654,而是给我整数1。

2 个答案:

答案 0 :(得分:1)

因为使用randint给出了整数值。 更改代码以获取浮点数。

import numpy as np

C = [(float(np.random.randint(-10,10)),float(np.random.randint(-10,10))) for i in range(3)]
C = np.array(C)
C[0,0] = 1.654
print(C[0,0])

答案 1 :(得分:0)

我有解决方案... 我必须使用numpy array dtype参数,它表示:

  

dtype:数据类型,可选数组所需的数据类型。如果   没有给出,则将类型确定为最小类型   需要按顺序保持对象。这个说法只能   用于“上传”阵列。对于向下转换,请使用.astype(t)   方法。

C = [(np.random.randint(-10,10),np.random.randint(-10,10)) for i in range(3)]
C = np.array(C,dtype='float32')
C[0,0] = 1.654
print(C[0,0])

很明显,C是dtype int,因为这足以存储随机整数值。如果现在要将C的元素设置为浮点值,则必须更改C的dtype。