【发布时间】:2014-06-18 18:46:08
【问题描述】:
例如,如果我有一个 data.csv 文件,它看起来像:
A B
1| 1 2
2| 3 4
如果我以这种方式加载这些数据:
import numpy as np
from StringIO import StringIO
with open('test.csv', 'rb') as text:
b = np.genfromtxt( StringIO(text.read()),
delimiter=",",
dtype = [('x', int), ('y', int)]) ##<=== in my case
## I want may columns dtype
## in different format
print b.tranpose()
它仍然给我这样,它没有被转置。
[(1,2)
(3,4)]
但如果我这样做:dtype = 'str'(这意味着所有列具有相同的格式 np.transpose() 效果很好。
================================================
但如果我这样做:
import numpy as np
a = np.array([(1,2), (3,4)])
print a.transpose()
正常工作
======= 我的问题 ======= 如果我从 txt 或 csv 加载 numpy 数据,并定义每列的数据类型。有什么方法可以让 numpy 数据正常工作吗?
【问题讨论】:
-
您的第一个代码示例不是您实际运行的,因为它拼错了
transpose函数并且根本不会打印任何内容。请发布一个实际给出您声称的输出的示例。 -
旁白:复制和粘贴原始 csv 文本本身通常是一个更好的主意。我不知道您的“csv”是否没有逗号,或者是否有并且您出于某种原因决定删除它们,从而使您的示例与您的代码不一致。
-
已尝试打印
b和b.shape? -
你能告诉我如何将 [(), (), ()] 转换为 numpy 数组 [[], [], []]?因为我在应用 numpy.genfromtxt() 之后才得到 [(),(),()]
-
你有一个record array,它与普通数组略有不同。