我在将数组的元素设置为浮点数时遇到问题。
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。
答案 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。