【发布时间】:2011-04-28 17:12:21
【问题描述】:
如何在 numpy 中将 ndarray 转换为矩阵?我正在尝试从 csv 导入数据并将其转换为矩阵。
from numpy import array, matrix, recfromcsv
my_vars = ['docid','coderid','answer1','answer2']
toy_data = matrix( array( recfromcsv('toy_data.csv', names=True)[my_vars] ) )
print toy_data
print toy_data.shape
但我明白了:
[[(1, 1, 3, 3) (1, 2, 4, 1) (1, 3, 7, 2) (2, 1, 3, 3) (2, 2, 4, 4)
(2, 4, 3, 1) (3, 1, 3, 3) (3, 2, 4, 3) (3, 3, 3, 4) (4, 4, 5, 1)
(4, 5, 6, 2) (4, 2, 4, 3) (5, 2, 5, 4) (5, 3, 3, 1) (5, 4, 7, 2)
(6, 1, 3, 3) (6, 5, 4, 1) (6, 2, 5, 2)]]
(1, 18)
我需要做什么才能从这段代码中得到一个 4 x 18 的矩阵?这个问题一定有一个简单的答案,但我就是找不到。
【问题讨论】:
-
你为什么不重新塑造它而不是使用矩阵?
-
Reshape 不会让我将 1x18 对象转换为 4x18 对象,对吗?
-
您如何建议将 1x18 对象转换为 4x18 对象?其他行是从哪里来的?
-
查看上面的输出:recfromcsv 将 4x18 csv 文件导入为 18 行 ndarray,每行包含一个 4 元组数据。我想将其转换为 4x18 矩阵。
-
如果你有一个 18x4 ndarray,那么只需使用
.T将其转置为 18x4 ndarray。
标签: python arrays matrix numpy