gpt4 book ai didi

python - numpy loadtxt 不会导致数组

转载 作者:太空宇宙 更新时间:2023-11-04 03:27:23 25 4
gpt4 key购买 nike

似乎遇到了一个简单的问题。我正在尝试读取文件中的数组。这些列是整数和字符串的混合;只对第 0、2、3 列感兴趣。

import numpy as np
network = np.loadtxt('temp.biflows',skiprows=1, usecols=(0,2,3), delimiter = '\t', dtype=[('ts','i10'), ('sndr','|S14'), ('recr', '|S14')])
print network.shape

输入文件的样本;列由制表符分隔 \t:

1441087368  1441087365  186.251.68.208  186.251.68.145  17  137 137 3   0   150 0
1441087342 1441087341 125.144.214.126 125.144.195.105 17 137 137 2 0 100 0
1441087370 1441087370 186.251.139.178 170.85.175.203 17 35905 161 2 2 760 850

实际有30104行。生成的网络形状为 network.shape = (30104,)。我正在寻找的是网络是一个形状为 (30104,3) 的数组。

FWIW 我的目标是根据第一列(时间戳)对行进行排序。

任何关于我可能做错了什么的建议都将不胜感激(以及如何进行排序的建议)。

最佳答案

您不能创建形状为 (n, 3) 的 numpy 数组,其中每一列都有不同的类型。您可以创建什么(以及当您将 loadtxtdtype=[('ts','i10'), ('sndr',' |S14'), ('recr', '|S14')]) 创建一个结构化数组,其中数组中的每个元素都是一个由多个字段组成的结构。在您的例子中,您有三个字段:一个是整数,两个是字符串。 loadtxt 创建的数组是一个一维数组。数组中的每个元素都是一个具有三个字段的结构。您可以访问字段(您可以将其解释为“列”)作为 network['ts']network['sndr']network[' recr'].

参见 http://docs.scipy.org/doc/numpy/user/basics.rec.html了解更多信息。这里可能也有很多关于 SO 的相关信息。例如,Access Columns of Numpy Array? Errors Trying to Do by Transpose or by Column Access

关于python - numpy loadtxt 不会导致数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32503945/

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