gpt4 book ai didi

python - 如何将 ndarray 转换为 scipy 中的矩阵?

转载 作者:太空宇宙 更新时间:2023-11-04 09:18:17 26 4
gpt4 key购买 nike

如何将 ndarray 转换为 numpy 中的矩阵?我正在尝试从 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 的矩阵,我需要做什么?这个问题必须有一个简单的答案,但我就是找不到。

最佳答案

如果最终目标是制作矩阵,则无需创建包含命名列的重新排列。您可以使用 np.loadtxt 将 csv 加载到 ndarray,然后使用 np.asmatrix 将其转换为矩阵:

import numpy as np
toy_data = np.asmatrix(np.loadtxt('toy_data.csv',delimiter=','skiprows=1))
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.]]
(18, 4)

注意:skiprows 参数用于跳过 csv 中的 header 。

关于python - 如何将 ndarray 转换为 scipy 中的矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5822452/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com