如何将数组元素添加至NumPy矩阵?附代码示例
如何将数组元素添加到NumPy矩阵中?
嘿,你给出的示例代码直接在np.mat()的字符串里写z[0]是行不通的——因为这个字符串参数是纯文本格式,NumPy不会自动解析其中的Python变量。下面给你几个实用的解决方法:
方法一:先初始化矩阵,再赋值指定位置
这种方法适合先搭建矩阵框架,再把列表元素填入对应位置:
import numpy as np z = [1, 2] # 先创建一个2行4列的空矩阵(初始值设为0占位) A = np.mat(np.zeros((2, 4))) # 给第一行第二列(索引从0开始)赋值z[0] A[0, 1] = z[0] # 填充其他固定值 A[0, 0] = 12 A[0, 2] = -12 A[0, 3] = 6 A[1, 0] = 6 A[1, 1] = 4 A[1, 2] = -6 A[1, 3] = 2 print(A)
方法二:用字符串格式化插入变量值
如果你习惯用字符串定义矩阵的方式,可以通过Python的字符串格式化,提前把z[0]的实际值插入到字符串中:
import numpy as np z = [1, 2] # 用f-string把z[0]的值替换进矩阵字符串 matrix_str = f"12,{z[0]},-12,6;6,4,-6,2" A = np.mat(matrix_str) print(A)
这种方式会先把z[0]的数值(也就是1)代入字符串,生成"12,1,-12,6;6,4,-6,2",再传给np.mat()解析。
方法三:用数组拼接构建矩阵
这是最直观灵活的方式,直接把列表元素嵌入到行数组中,再组合成矩阵:
import numpy as np z = [1, 2] # 定义每一行的元素,直接把z[0]加入第一行 row1 = [12, z[0], -12, 6] row2 = [6, 4, -6, 2] # 将两行组合成矩阵 A = np.mat([row1, row2]) print(A)
这种方式完全避开了字符串解析的问题,也是日常使用中最推荐的写法。
内容的提问来源于stack exchange,提问作者Royston Teo
相关产品推荐
相关产品推荐

