numpy数组中元素的乘法和除法给出整数结果
Posted
技术标签:
【中文标题】numpy数组中元素的乘法和除法给出整数结果【英文标题】:Multiplication and Division of elements in a numpy array gives integer results 【发布时间】:2017-11-04 02:06:55 【问题描述】: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]
上述情况是怎么发生的,我该怎么办?
【问题讨论】:
你期望得到什么? 您的问题是什么?寻求调试帮助的问题应包括所需的行为以及输入和所需输出的示例。A
是 dtype 整数。将浮点值分配给这样的数组会截断它们。尝试从 float dtype 数组开始(例如 A = ...([[2., 1, ...]...`)
真的应该编辑这个问题的标题才有意义。
@rayryeng 谢谢!
【参考方案1】:
在主数组中使用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. ]
【讨论】:
您能否编辑您的答案以使用正确的二维数组索引,A[0, 1]
?以上是关于numpy数组中元素的乘法和除法给出整数结果的主要内容,如果未能解决你的问题,请参考以下文章
Python的Numpy库中各种矩阵基本运算的示例代码(加减乘点乘点除乘方转置等)