Mkc*_*kch 4 python transpose numpy
我想知道是否有一个函数将列表X作为输入并输出对应于X?
(我环顾四周,我怀疑这可能是:np.matrix(X).T)
我不认为有一个功能,但有一个专用的对象, np.c_
>>> X = list('hello world')
>>> X
['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']
np.c_[X]
array([['h'],
['e'],
['l'],
['l'],
['o'],
[' '],
['w'],
['o'],
['r'],
['l'],
['d']], dtype='<U1')
Run Code Online (Sandbox Code Playgroud)
你也可以这样做(注意额外的方括号)
>>> np.array([X]).T
Run Code Online (Sandbox Code Playgroud)
如果你想将Python列表转换为numpy列向量,你可以使用conductorndmin的参数array:
col_vec = np.array(X, ndmin=2)
Run Code Online (Sandbox Code Playgroud)
简单地构造一个数组将得到一个一维数组,它不能直接转置:
a = np.array(X)
a is a.T
Run Code Online (Sandbox Code Playgroud)
有几种方法可以将一维向量转换为列:
col_vec = a.reshape(-1, 1)
Run Code Online (Sandbox Code Playgroud)
和
col_vec = a[np.newaxis, :]
Run Code Online (Sandbox Code Playgroud)
当你的列表已经是一个数组之后,这是相当常见的习惯用法。
col_vec = np.reshape(X, (-1, 1))
Run Code Online (Sandbox Code Playgroud)
和
col_vec = np.expand_dims(X, -1)
Run Code Online (Sandbox Code Playgroud)
即使在原始列表上也能工作。
PS:远离np.matrix它,即使不是彻底弃用,它也是非常过时和有限的。
列表是 Python 的原生类型,而 numpy 数组是 numpy 对象。您需要首先将列表转换为 numpy 数组。您可以执行以下操作。
x = list(range(5))
print(x)
Run Code Online (Sandbox Code Playgroud)
[0,1,2,3,4]
x_vector = np.asarray(x)
Run Code Online (Sandbox Code Playgroud)
数组([0,1,2,3,4])
现在,Python 不知道行向量和列向量有什么区别,这取决于你如何使用向量。当前向量为 1x5。如果你想要 5x1,你可以通过以下任一方式进行转置
x_vector.T
Run Code Online (Sandbox Code Playgroud)
或者
np.transpose(x_vector)
Run Code Online (Sandbox Code Playgroud)
然而,由于这是一个一维矩阵,转置与内存中的非转置向量相同。
| 归档时间: |
|
| 查看次数: |
21175 次 |
| 最近记录: |