如何从np.genfromtxt添加的ndarray中删除'b'字符

qwerty

我有一个文本文件,其中包含以字符串,整数和浮点数形式的信息行,并用空格隔开,例如

HIP893 23_10 7 0.028 4
HIP1074 43_20 20 0.0141 1
HIP1325 23_10 7 0.02388 5
...

我已使用以下行导入了此数据:

data=np.genfromtxt('98_info.txt', dtype=(object, object, int,float,float))

但是,当我这样做时,我得到的输出

[(b'HIP893', b'23_10', 7, 0.028, 4) 
 (b'HIP1074', b'43_20', 20, 0.0141, 1)
 (b'HIP1325', b'23_10', 7, 0.02388, 5)
  ... ]

而我希望没有“ b”,而是:

[('HIP893', '23_10', 7, 0.028, 4.0) 
 ('HIP1074', '43_20', 20, 0.0141, 1.0)
 ('HIP1325', '23_10', 7, 0.02388, 5.0)
  ... ]

我已经尝试过NumPy的core.defchararray,但是这给了我错误'非字符串数组上的字符串操作',我想这是因为我的数据可能是字符串和数字的组合?

是否有某种方法可以删除字符但将数据保留在数组中,或者是否有另一种方式加载信息以将字符串保留在引号中,而将数字保留在不带引号的情况下?

如果有一种方法可以更好地将其作为2d np数组导入,但是如果没有的话,这不是问题。

谢谢!

hpaulj

与您的样品和dtype

In [1]: np.genfromtxt('stack55810419.txt', dtype=(object, object, int,float,floa
   ...: t))                                                                     
Out[1]: 
array([(b'HIP893', b'23_10',  7, 0.028  , 4.),
       (b'HIP1074', b'43_20', 20, 0.0141 , 1.),
       (b'HIP1325', b'23_10',  7, 0.02388, 5.)],
      dtype=[('f0', 'O'), ('f1', 'O'), ('f2', '<i8'), ('f3', '<f8'), ('f4', '<f8')])

使用dtype=None(和encoding=None):

In [5]: np.genfromtxt('stack55810419.txt', dtype=None, encoding=None)           
Out[5]: 
array([('HIP893', 2310,  7, 0.028  , 4),
       ('HIP1074', 4320, 20, 0.0141 , 1),
       ('HIP1325', 2310,  7, 0.02388, 5)],
      dtype=[('f0', '<U7'), ('f1', '<i8'), ('f2', '<i8'), ('f3', '<f8'), ('f4', '<i8')])

指定unicode dtypes(必须包含大小):

In [6]: np.genfromtxt('stack55810419.txt', dtype=('U7', 'U7', int,float,float)) 
Out[6]: 
array([('HIP893', '23_10',  7, 0.028  , 4.),
       ('HIP1074', '43_20', 20, 0.0141 , 1.),
       ('HIP1325', '23_10',  7, 0.02388, 5.)],
      dtype=[('f0', '<U7'), ('f1', '<U7'), ('f2', '<i8'), ('f3', '<f8'), ('f4', '<f8')])

我对为什么None情况为第二列选择一个整数dtype感到困惑(下划线应该可以避免这种情况)。

dtype=None 不使用encoding参数会引发以下警告:

/ usr / local / bin / ipython3:1:VisibleDeprecationWarning:不指定编码参数而读取unicode字符串已被弃用。设置编码,对系统默认值使用无。

在Py2中,默认的字符串类型是字节字符串。在Py3 unicode中。genfromtxtbytestrings与py2兼容使用。但是最新版本已添加了encoding参数。但是这种转换似乎仍然有些粗糙。


这也许是我得到的原因i8; Python自己int接受下划线。

In [20]: int('23_10')                                                           
Out[20]: 2310

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何摆脱python中字符串中的b前缀?

<200b> </ 200b>奇怪的登录字符串-如何删除它

如何在Python的字符串中“渲染” \ b

如何从Java中的字符串中删除\ u200B(零长度空白Unicode字符)?

如何删除B中字符串的第一部分

如何将表格 A_B 中的字符串替换为表格 B_A 中的字符串?

如何使用PHP交换字符串中两个不同字符的值?A变成B,B变成A

如何在PHP中检查我的字符串$ a在位置$ i是字符串$ b

如何拆分我的字符串“a!b!” 变成a!,b!在蟒蛇?

PHP:如何用字符串中的单词B替换单词A-A和B在数组[]和[+1]中

如何从字符串的每一行的开头删除b?

确定字符串B是否可能是对字符串A进行删除/添加的结果

如何在 Prolog 中編寫一個列表,該列表必須只包含字符 a 和 b,並且只包含 a 和 b 的 n 個字符

B在字符数组C中搜索

Python中的转义字符\b(3.4.2)

在Vim中,如何搜索单词边界字符,例如regexp中的\ b?

如何限制char数组在C ++中仅从字符串中获取a和b?

如何在Prolog中編寫一個只能包含字符a但必須以字符b結尾的列表?

如何在Python中的一行用法中将f字符串与b字符串合并

如何仅从C中的“ A”,“ B”,“ S”和“ Z”生成随机字符?

如何通过Regexp匹配字符串中的bar,bar,b--a--r等

如何为文本中没有字符“ b”和“ c”的所有行编号?

如何摆脱字符串变量中的b前缀和''

如何在TSQL中检查字符串A是否“包含” B?

如何删除字符串中的字符?

如何从字符串中删除字符?

如何从字符串中删除字符?

如何从字符串中删除字符?

如何从类型字符中删除特定字符