将数据拆分为列并将其存储为二维数组
Posted
技术标签:
【中文标题】将数据拆分为列并将其存储为二维数组【英文标题】:Split data in columns and store it as two dimensional array 【发布时间】:2018-10-06 03:03:49 【问题描述】:我有一个这种形式的数据:
49907 87063
42003 51519
21301 46100
97578 26010
52364 86618
25783 71775
1617 29096
2662 47428
74888 54550
17182 35976
86973 5323
......
我需要像for line in file
一样在最后遍历它。
我想将它们拆分为第一列值存储在数组一中,第二列值存储在数组二中,所以每当我调用 Array_one[0], Array_two[0]
时,我都会得到第一行值,如 49907 87063
和其他值相同。
【问题讨论】:
left_col, right_col = np.loadtxt(<your_file>, unpack=True)
【参考方案1】:
您可以使用空格作为分隔符。
例如:
import pandas as pd
df = pd.read_csv(filename, sep="\s+", names = ["A", "B"])
print(df["A"][0])
print(df["B"][0])
输出:
49907
87063
for i in df.values:
print(i)
输出:
[49907 87063]
[42003 51519]
[21301 46100]
[97578 26010]
[52364 86618]
[25783 71775]
[ 1617 29096]
[ 2662 47428]
[74888 54550]
[17182 35976]
[86973 5323]
【讨论】:
我也不明白,是个错误 @jezrael 我可以添加一个像 A[counter] 这样的计数器吗?? @MuhammadHassan - 我认为最好的方法是创建有问题的预期输出......而且我相信Rakesh
会给你很好的答案:)
所以没有理由拒绝投票?,签名...我只能帮助一点点。
for i in df.values: func(i[0], i[1])
【参考方案2】:
您可以使用numpy.genfromtxt
直接提取到numpy
数组中:
A = np.genfromtxt(file, dtype=int)
空格是默认分隔符。
然后您可以使用标准的numpy
索引/切片:
A[0]
;第二栏:A[:, 1]
。
要提取第一行的第一个元素:A[0, 0]
。
提取第二列的第一个元素:A[0, 1]
逐行迭代整个数组:
for i in range(A.shape[0]):
print(A[i])
【讨论】:
你能添加第二列B吗,因为我需要将这些值逐行放入函数中,作为参数,如函数(column1,column2) 我还是不清楚,我想把这两个值分别作为函数的参数,比如 fun(column1 , column2) ,它有一个循环,直到 4000 行......跨度> 我建议你阅读numpy
indexing docs。不幸的是,没有关于 SO 的教程。以上是关于将数据拆分为列并将其存储为二维数组的主要内容,如果未能解决你的问题,请参考以下文章
如何从 .txt 中提取文本并将其存储到动态二维数组中?