【问题标题】:How to add arrays into numpy matrix?如何将数组添加到 numpy 矩阵中?
【发布时间】:2018-03-30 12:50:31
【问题描述】:

例如,我想将列表“z”中的第一个元素放入 numpy 的矩阵中,如下所示

z = [1,2]
A = np.mat("12,z[0],-12,6;6,4,-6,2")    

【问题讨论】:

    标签: python arrays python-3.x numpy


    【解决方案1】:

    使用常规的array 构造函数。

    In [167]: z=[1,2]
    In [168]: arr = np.array([[ 1,z[0], 2], [3, 4, z[1]]])
    In [169]: arr
    Out[169]: 
    array([[1, 1, 2],
           [3, 4, 2]])
    

    mat('1 2; 3 4') 表单旨在帮助 MATLAB 用户适应numpy。它不适用于复杂的条目。此表达式中的字符串解析器无法处理变量和表达式。

    不鼓励使用np.matrix,因为它在许多情况下会增加复杂性。它将在numpy 中保留很长时间,但除非您确实需要某些特殊功能,否则不要使用它。


    也就是说,基础 Python 字符串格式中的一项新功能使这种表达方式更容易:

    In [171]: np.matrix(f'1,{z[0]},2;3,4,{z[1]}')
    Out[171]: 
    matrix([[1, 1, 2],
            [3, 4, 2]])
    

    新的f'' 字符串可以处理变量和表达式替换:

    In [172]: f'1,{z[0]},2;3,4,{z[1]}'
    Out[172]: '1,1,2;3,4,2'
    In [175]: np.matrix(f'1,{z[0]},2;3,4,{sum(z)}')
    Out[175]: 
        matrix([[1, 1, 2],
                [3, 4, 3]])
    

    【讨论】:

      【解决方案2】:

      检查一下:

      import numpy as np
      
      z = [1, 2]
      A = np.matrix('12, ' + str(z[0]) + ' , -12, 6 ; 6, 4, -6, 2')
      print(A)
      
      #returns/Output
      
      [[ 12   1 -12   6]
       [  6   4  -6   2]]
      

      【讨论】:

      • np.matrix 将被弃用。请避免再使用它。
      • Oki 我会记住的 :) 谢谢!
      猜你喜欢
      • 2021-10-25
      • 2023-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-07
      • 2017-03-04
      • 1970-01-01
      相关资源
      最近更新 更多