Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在数组列表中设置十进制值(在Python中)?_Python_Arrays_Numpy - Fatal编程技术网

如何在数组列表中设置十进制值(在Python中)?

如何在数组列表中设置十进制值(在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

首先,我有这样一个输出数组(在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, 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谢谢你的反馈,我已经编辑了我的问题。我希望这更容易理解