【发布时间】: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
例如,我想将列表“z”中的第一个元素放入 numpy 的矩阵中,如下所示
z = [1,2]
A = np.mat("12,z[0],-12,6;6,4,-6,2")
【问题讨论】:
标签: python arrays python-3.x numpy
使用常规的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]])
【讨论】:
检查一下:
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 将被弃用。请避免再使用它。