【问题标题】:reading names with genfromtxt missing hyphen读取带有 genfromtxt 缺少连字符的名称
【发布时间】:2016-08-15 12:33:06
【问题描述】:

我正在尝试读取以下文件并尝试使用 numpy 加载数据:

#Frame   HIE_21@O-PHE_32@N-H THR_20@O-PHE_32@N-H HIE_21@ND1-PHE_32@N-H
       1                   0                   0                     0
       2                   1                   0                     0
       3                   0                   0                     0
       4                   0                   0                     0
       5                   0                   0                     0

如果我从第一个值开始读取第一行的字段名称,则名称中间缺少一个“-”字符:

f1 = np.genfromtxt(fileName1, dtype=None, names=True)
labels = f1.dtype.names[1:]
print labels

> ('HIE_21OPHE_32NH', 'THR_20OPHE_32NH', 'HIE_21ND1PHE_32NH')

而不是 HIE_21O-PHE_32NH、THR_20O-PHE_32NH、HIE_21ND1-PHE_32NH

为什么?如何检索连字符?

【问题讨论】:

  • 默认操作将名称修改为可以用作属性名称(对于recarrays)。

标签: python numpy names genfromtxt


【解决方案1】:

使用参数deletechars=''

In [15]: f1 = np.genfromtxt('hyphens.txt', dtype=None, names=True, deletechars='')

In [16]: f1
Out[16]: 
array([(1, 0, 0, 0), (2, 1, 0, 0), (3, 0, 0, 0), (4, 0, 0, 0), (5, 0, 0, 0)], 
      dtype=[('Frame', '<i8'), ('HIE_21@O-PHE_32@N-H', '<i8'), ('THR_20@O-PHE_32@N-H', '<i8'), ('HIE_21@ND1-PHE_32@N-H', '<i8')])

In [17]: f1.dtype.names
Out[17]: 
('Frame',
 'HIE_21@O-PHE_32@N-H',
 'THR_20@O-PHE_32@N-H',
 'HIE_21@ND1-PHE_32@N-H')

【讨论】:

    猜你喜欢
    • 2023-04-03
    • 2018-08-17
    • 1970-01-01
    • 2023-01-05
    • 1970-01-01
    • 2019-04-29
    • 2020-11-20
    • 1970-01-01
    • 2020-08-12
    相关资源
    最近更新 更多