如何在数组列表中设置十进制值(在Python中)?
首先,我有这样一个输出数组(在4x1矩阵中): 这个输出,我从4x3和3x1的矩阵乘法的返回值中得到,如下所示:如何在数组列表中设置十进制值(在Python中)?,python,arrays,numpy,Python,Arrays,Numpy,首先,我有这样一个输出数组(在4x1矩阵中): 这个输出,我从4x3和3x1的矩阵乘法的返回值中得到,如下所示: def inverse_kinematic(self,Degree): # [W] = (1/r)[R][V] self.R = array ( [[-1, 1, self.X1+self.Y1], [1, 1, self.X2-self.Y2], [-1, 1, self.X3+self.Y3], [1, 1, sel
def inverse_kinematic(self,Degree):
# [W] = (1/r)[R][V]
self.R = array ( [[-1, 1, self.X1+self.Y1], [1, 1, self.X2-self.Y2],
[-1, 1, self.X3+self.Y3], [1, 1, self.X4-self.Y4]])
self.V = array ( [[self.Vt*math.cos(math.radians(Degree))],
[self.Vt*math.sin(math.radians(Degree))],[ self.Wv]])
self.W = []
self.W = (1/self.r)*dot(self.R,self.V)
return self.W
我真的希望有和输出数组,如上所述,但以两位十进制值,如下所示:
array([[ 0.00],
[ 28.28],
[ 0.00],
[ 28.28]])
>>> import numpy as np
>>> a = np.array([[11,12,13],[21,22,23],[31,32,33],[41,42,43]])
>>> b = np.array([[1],[2],[3]])
>>> x = np.dot(a,b)
>>> x
array([[ 74],
[134],
[194],
[254]])
我已经厌倦了使用像“%.2f”%(数字)这样的方法,但仍然没有成功。我想知道有没有最好的方法来设置数组列表中的十进制值
致以最良好的祝愿
格伦这就是你要找的吗? 印刷:
for arr in wheel_lists:
for element in arr:
print '%.2f' % element
设置:
for arr in wheel_lists:
for i in xrange(len(arr)):
arr[i] = float('%.2f' % 3.14)
您的返回值具有非常不同的顺序: 2.82842712e+01约为2.8 -2.22044605e-15=0.0000000000000022约0 很可能您的数值计算在分析上为零,而较小的值只是一个计算错误 矩阵运算在numpy中很容易完成,您可以使用如下内容:
array([[ 0.00],
[ 28.28],
[ 0.00],
[ 28.28]])
>>> import numpy as np
>>> a = np.array([[11,12,13],[21,22,23],[31,32,33],[41,42,43]])
>>> b = np.array([[1],[2],[3]])
>>> x = np.dot(a,b)
>>> x
array([[ 74],
[134],
[194],
[254]])
那样的话,你可能会很高兴
>>> x = np.array([0.923423,0.12341235,0.213453241])
>>> x.round(2)
array([ 0.92, 0.12, 0.21])
numpy数组很方便,因为您不必迭代它们的条目:
>>> a = np.array([1,2,3,4,5])
>>> a
array([1, 2, 3, 4, 5])
>>> a+2
array([3, 4, 5, 6, 7])
>>> a*10
array([10, 20, 30, 40, 50])
>>> np.sin(a)
array([ 0.84147098, 0.90929743, 0.14112001, -0.7568025 , -0.95892427])
我已经把你的问题读了三遍,弄不清头绪。@aix谢谢你的反馈,我已经编辑了我的问题。我希望这更容易理解