gpt4 book ai didi

python - numpy - Python - 有选择地导入 .txt 文件的部分

转载 作者:行者123 更新时间:2023-11-28 21:59:22 25 4
gpt4 key购买 nike

在我的 data.txt 文件中,有两种类型的行。

  1. 普通数据:16 个数字,由空格分隔,末尾附加 '\n'。

  2. 数据不完整:在向data.txt写入数据的过程中,最后一行的写入总是被STOP命令打断。因此,它总是不完整的,例如它可以有 10 个数字,但没有 '\n'

两个问题:

一个。我怎样才能将整个文件除了最后一个不完整的行导入到 Python 中?

我注意到

# Load the .txt file in
myData = np.loadtxt('twenty_z_up.txt')

非常“严格”,因为当最后一个不完整的行存在时,文件无法导入。导入的 .txt 文件必须是一个漂亮的矩阵。

b. 有时,出于实验目的,我会在一行的第一个条目上添加时间戳。假设我在第 2 行的开头有第一个时间戳,在第 5 行的开头有第二个时间戳。如何仅从第 2 行到第 5 行导入 Python?

===============================更新:问题已解决=========== =====================

myData = np.genfromtxt('fast_walking_pocket.txt', skip_footer=1)

将有助于丢弃最后不完整的行

最佳答案

你可以试试pandas它提供了一个使用函数read_csv更轻松地加载数据。

示例数据:

a b c d e f g h i j k l m n o p
a b c d e f g h i j k l m n o p
a b c d e f g h i j k l m n o p
a b c d e f g h i j k l m n o p
a b c d e f g h i j k l m n o p
a b c d e f g h i j

对于您的 Q1,您可以通过以下方式加载数据:

In [27]: import pandas as pd

In [28]: df = pd.read_csv('test.txt', sep=' ', header=None, skipfooter=1)

DataFrame是一个有用的结构,可以帮助你处理数据更容易。要获取 numpy 数组,只需获取 DataFramevalues 属性即可。

In [33]: df.values
Out[33]:
array([['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
'n', 'o', 'p'],
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
'n', 'o', 'p'],
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
'n', 'o', 'p'],
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
'n', 'o', 'p'],
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
'n', 'o', 'p']], dtype=object)

对于你的Q2,你可以得到第二行和第五行

In [36]: df.ix[[1, 4]]
Out[36]:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1 a b c d e f g h i j k l m n o p
4 a b c d e f g h i j k l m n o p

关于python - numpy - Python - 有选择地导入 .txt 文件的部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16804513/

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