numpy数组中的元素的乘法和除法给出整数结果
问题描述:
import numpy as np
A = np.array([[2,1,-1,8],
[-3,-1,2,-11],
[-2,1,2,-3]])
B = A[1]+A[0]* (-A[1][0]/A[0][0])
print(B) #B =[ 0. 0.5 0.5 1. ]
A[1] = A[1]+A[0]* (-A[1][0]/A[0][0])
print(A[1]) #A[1] = [0 0 0 1]
上述情况是怎么发生的,我该怎么办?numpy数组中的元素的乘法和除法给出整数结果
答
在主阵列中使用dtype=float
。你的数组默认是整数。
import numpy as np
A = np.array([[2,1,-1,8],
[-3,-1,2,-11],
[-2,1,2,-3]], dtype=float)
B = A[1] + (A[0]*(-A[1,0]/A[0,0]))
print(B)
A[1] = A[1] + (A[0]*(-A[1,0]/A[0,0]))
print(A[1])
#Output:
#[ 0. 0.5 0.5 1. ]
#[ 0. 0.5 0.5 1. ]
+0
你可以编辑你的答案,使用适当的二维数组索引,'A [0,1]'? – hpaulj
+0
@hpaulj - 谢谢。编辑: ) – Transhuman
你期望得到什么? – sam
你的问题是什么?寻求调试帮助的问题应包括所需的行为以及输入和期望输出的示例。 –
'A'是dtype整数。将浮点值分配给这样的数组会截断它们。尝试从float dtype数组开始(例如A = ...([[2,1,...] ...) – hpaulj