gpt4 book ai didi

python - numpy.genfromtxt 没有解包

转载 作者:行者123 更新时间:2023-11-28 17:43:02 26 4
gpt4 key购买 nike

我的包 numpy.genfromtxt 有一个奇怪的问题.我用它来读取包含多个列(可用 here )的数据文件,但即使 unpack 设置为 True,这些文件也不会被解压。

这是一个MWE:

import numpy as np
f_data = np.genfromtxt('file.dat', dtype=None, unpack=True)

print f_data[3]
(237, 304.172, 2017.48, 15.982, 0.005, 0.889, 0.006, -2.567, 0.004, 1.205, 0.006)

(我使用 dtype=None 因为文件中可能散布着字符串)

如您所见,它返回一行而不是未打包的列。

如果我使用 np.loadtxt 它会按预期工作:

f_data = np.loadtxt('file.dat', unpack=True)

print f_data[3]
[ 16.335 16.311 15.674 15.982 16.439 15.903 15.313 18.35 15.643 14.081 16.578 11.477]

我在这里做错了什么?

最佳答案

这是你想要的吗?

In [448]: i=3
...: d=np.genfromtxt(fname, None) #d is a recorded array (or structured array)
...: d['f%d'%i] #Addressing Array Columns by Name
Out[448]: array([ 16.335, 16.311, 15.674, 15.982, 16.439, 15.903])

参见:

http://wiki.scipy.org/Cookbook/Recarray

http://docs.scipy.org/doc/numpy/user/basics.rec.html#module-numpy.doc.structured_arrays

编辑:

我在以下数据上测试了 d=np.genfromtxt('a.x', dtype=None, unpack=True):

144     a578.06 873.72  16.335  0.003 
#-------^--------
180 593.41 665.748 16.311 0.003
147 868.769 908.472 15.674 0.003
237 asdf.172 2017.48 15.982 0.005
#-------^--------

使用dtype=None,解包确实失败:

In [538]: d=np.genfromtxt('a.x', dtype=None, unpack=True)
...: print d[3]
...: print d[1]
(237, 'asdf.172', 2017.48, 15.982, 0.005)
(180, '593.41', 665.748, 16.311, 0.003)

当使用默认 dtypedtype=str 时,解压工作:

In [539]: d=np.genfromtxt('a.x',  unpack=True)
...: print d[3]
...: print d[1]
[ 16.335 16.311 15.674 15.982 16.439 15.903]
[ nan 593.41 868.769 nan 1039.71 385.864]

In [540]: d=np.genfromtxt('a.x', dtype=str, unpack=True)
...: print d[3]
...: print d[1]
['16.335' '16.311' '15.674' '15.982' '16.439' '15.903']
['a578.06' '593.41' '868.769' 'asdf.172' '1039.71' '385.864']

关于python - numpy.genfromtxt 没有解包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21937979/

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