【发布时间】:2015-05-19 19:29:45
【问题描述】:
类似于this question,numpy.genfromtxt 修改我的列名:
import numpy as np
from io import BytesIO # https://stackoverflow.com/a/11970414/321973
str = 'x,-1,1\n0,1,1\n1,2,3'
data = np.genfromtxt(BytesIO(str.encode()), delimiter=',', names=True)
print(data.dtype.names)
产生('x', '1', '1_1'),而不是所需的('x', '-1', '1')(甚至更好,('x', -1, 1))。我按照there 的建议尝试了deletechars="""~!@#$%^&*()=+~\|]}[{';: /?>,<""",但无济于事。
【问题讨论】:
-
我认为列名必须是有效的标识符,
-1不是。 -
最后,我想顺便获得一个
np.meshgrid,所以请继续阻止我的XY问题;) -
@jonrsharpe 你的意思是不是所有的字符串都是有效的?是否有有效标识符列表?
-
我不确定,但this doc 指出““名称”必须是有效的 Python 标识符”
-
@jonrsharpe 不,它们不需要是有效的标识符:
x = np.array((1,), dtype=[('-1', 'i')]); x['-1']工作得很好
标签: python csv python-3.x numpy