获取genfromtxt / loadtxt以忽略忽略的列/行中的数据类型

时间:2013-10-27 10:10:01

标签: python numpy

我有一个包含整数数据的文件,其中前几行/列用于名称。

我希望能够使用genfromtxtloadtxt,并且仍然可以将其视为同质数组。为此,我使用了选项skiprowsusecols,但它没有帮助。 在下面的(工作)示例中,我希望print(test_array.shape)给出(3,3)和print(test.array)来提供

[[0 0 0]
 [0 1 0]
 [1 0 0]]

在尝试加载文件之前,有没有办法实现我想要的而不用unix工具修剪第一行/列?请注意,我想要加载的实际文件是B-I-G(~6演出),所以任何解决方案都不应该太计算密集。

from __future__ import print_function
from StringIO import StringIO #use io.StringIO with py3
import numpy as np

example_file = StringIO("FID 1 2 3\n11464_ATCACG 0 0 0\n11465_CGATGT 0 1 0\n11466_TTAGGC 1 0 0")
test_array = np.loadtxt(example_file, skiprows=1, usecols=(1,), dtype=int)

print(test_array.shape) #(3,)
print(test_array) #[0 0 1]

1 个答案:

答案 0 :(得分:1)

您可以使用usecols中的skip_headernp.genfromtxt标记。然后它工作正常:

test_array = np.genfromtxt(example_file, skip_header=1, usecols=(1,2,3))
>>> print(test_array)
[[ 0.  0.  0.]
 [ 0.  1.  0.]
 [ 1.  0.  0.]]