在python

时间:2017-11-10 22:23:16

标签: python-3.x multidimensional-array

尝试编写一个程序,将数据从文本文件中分离出来,然后让我进行计算和显示数据。我引入数据的网格是144x73,这将覆盖很多天/年,因此它不是一个简单的单维数据存储。

我现在正在做什么......

a = open('filename.txt','r')
b = a.readlines()
a.close()

d = 0
i = () # don't think this is the correct approach by a long shot but something I decided to try when [] wasn't giving me what I hoped for
for e in range(11, 84): # first eleven lines of each file are not part of the data
    f = b[e]
    f = f.replace('.0000', '')
    f = f.replace('   ', '')
    f = f.replace(' ', ',')
    c = 0
    h = f[c*1] + f[(c*1)+1] + f[(c*1)+2] + f[(c*1)+3] # needs to combine each of the 4 characters between the commas from above
    i(d,0).append(int(h)) # definitely not the correct way to store the data
    c = c + 4
    for g in range(1,143):
        h = f[(c*1)+1] + f[(c*1)+2] + f[(c*1)+3] + f[(c*1)+4]
        i(d,g).append(int(h))
        c = c + 5
     print(i(d,0),i(d,1),i(d,2))
     d = d + 1
     continue

显然上面的内容不起作用,因为我不确定每次从文件中提取值时如何存储值。它正确地提取数据并将其组合/转换为整数,但我无法弄清楚如何最好地存储数据。我不是正确/最佳方法。

我可以看到必要的格式: a = ???年,日,列,行???

???表明我不确定是否应该把重点放在(,[或[[。

273.82001 273.82001 273.87000 273.90002 273.91998 273.95001 274.00000 274.02002 274.04999 274.10001 274.12000 274.10001 274.15002 274.15002 274.15002 274.16998 274.20001 274.16998 274.16998 274.16998 274.16998 274.15002 274.12000 274.12000 274.12000 274.10001 274.10001 274.07001 274.04999 274.04999 274.04999 274.02002 274.00000 274.00000 273.97000 273.97000 274.02002 274.02002 274.02002 274.00000 273.97000 273.97000 273.97000 273.95001 273.95001 273.95001 273.95001 273.97000 273.95001 273.90002 273.90002 273.90002 273.90002 273.87000 273.85001 273.85001 273.85001 273.82001 273.79999 273.79999 273.79999 273.77002 273.7 9999 273.79999 273.79999 273.77002 273.79999 273.79999 273.79999 273.82001 273.82001 273.87000 273.85001 273.87000 273.87000 273.90002 273.91998 273.91998 273.95001 273.97000 273.95001 273.95001 274.00000 274.00000 274.00000 274.02002 274.02002 274.04999 274.04999 274.04999 274.04999 274.07001 274.07001 274.04999 274.04999 274.04999 274.07001 274.07001 274.04999 274.04999 274.02002 274.02002 274.02002 274.02002 274.02002 274.00000 274.00000 273.97000 273.95001 273.95001 273.97000 273.97000 273.95001 273.95001 273.95001 273.91998 273.91998 273.91998 273.90002 273.90002 273.90002 273.90002 273.87000 273.85001 273.85001 273.79999 273.79999 273.77002 273.77002 273.72000 273.70001 273.75000 273.72000 273.70001 273.70001 273.66998 273.66998 273.66998 273.70001 273.70001 273.72000 273.72000 273.75000 273.79999

274.02002 274.12000 274.22000 274.37000 274.45001 274.57001 274.65002 274.75000 274.85001 274.85001 274.90002 274.91998 274.95001 274.87000 274.85001 274.79999 274.70001 274.60001 274.50000 274.35001 274.22000 274.10001 273.97000 273.82001 273.70001 273.60001 273.45001 273.35001 273.27002 273.20001 273.15002 273.12000 273.10001 273.12000 273.15002 273.16998 273.22000 273.27002 273.37000 273.41998 273.52002 273.60001 273.65002 273.78000 273.85001 273.90002 273.95001 273.97000 274.02002 274.02002 274.04999 274.04999 274.07001 274.04999 274.02002 274.00000 273.97000 273.97000 273.95001 273.90002 273.90002 273.85001 273.8 2001年273.82001 273.82001 273.82001 273.82001 273.85001 273.87000 273.87000 273.90002 273.91998 273.95001 273.97000 274.00000 274.00000 274.02002 274.00000 274.00000 273.97000 273.91998 273.91998 273.90002 273.85001 273.82001 273.77002 273.78000 273.77002 273.75000 273.77002 273.85001 273.90002 273.95001 274.04999 274.15002 274.25000 274.35001 274.47000 274.60001 274.66998 274.79999 274.87000 274.91998 274.97000 275.00000 275.07001 275.07001 275.07001 275.10001 275.12000 275.15002 275.16998 275.22000 275.28000 275.29999 275.35001 275.37000 275.41998 275.45001 275.47000 275.50000 275.45001 275.41998 275.37000 275.29999 275.22000 275.10001 274.97000 274.87000 274.72000 274.57001 274.41998 274.29999 274.15002 274.02002 273.95001 273.85001 273.82001 273.77002 273.75000 273.78000 273.78000 273.87000 273.91998

274.22000 274.27002 274.35001 274.35001 274.41998 274.50000 274.52002 274.60001 274.65002 274.65002 274.70001 274.72000 274.70001 274.66998 274.70001 274.62000 274.54999 274.47000 274.40002 274.29999 274.16998 274.04999 273.91998 273.78000 273.65002 273.52002 273.41998 273.28000 273.16998 273.04999 272.95001 272.82001 272.75000 272.70001 272.66998 272.66998 272.70001 272.77002 272.79999 272.90002 273.03000 273.16998 273.27002 273.35001 273.47000 273.57001 273.65002 273.70001 273.72000 273.77002 273.77002 273.75000 273.77002 273.75000 273.70001 273.70001 273.70001 273.72000 273.70001 273.70001 273.75000 273.79999 273.8 2001 273.87000 273.91998 273.97000 274.02002 274.07001 274.12000 274.20001 274.22000 274.25000 274.27002 274.29999 274.27002 274.29999 274.29999 274.22000 274.20001 274.15002 274.07001 274.03000 273.95001 273.82001 273.72000 273.65002 273.54999 273.45001 273.40002 273.40002 273.41998 273.52002 273.66998 273.90002 274.15002 274.50000 274.85001 275.20001 275.54999 275.85001 276.10001 276.29999 276.50000 276.60001 276.62000 276.65002 276.62000 276.62000 276.57001 276.57001 276.57001 276.60001 276.65002 276.66998 276.77002 276.75000 276.77002 276.75000 276.65002 276.54999 276.40002 276.20001 275.97000 275.75000 275.50000 275.27002 275.07001 274.87000 274.75000 274.57001 274.47000 274.40002 274.35001 274.32001 274.29999 274.27002 274.27002 274.22000 274.22000 274.22000 274.22000 274.16998 274.20001 274.25000

我无法弄清楚如何让它按照实际显示的方式对其进行格式化,但确实在每个数字之间有额外的空格,因此我可以使用上面的代码删除它们。每列用空格分隔,每行由双回车分隔(在本例中)。

从上面我可以很容易地将每一行变成一个单独的行,但我还没弄清楚如何存储该行。

输出的粗略概念。我知道这甚至会发生变化,因为更多的想法一直在不断涌现。粗略地说,我需要一种能够跟踪年,月/日,价值代表什么,价值观的方法。每个行/列的数量都很多,这使得它看起来比我认为的更复杂。我的想法只是试图使一些简单的东西复杂化。

1948,0101,500T,1234,4234,2344,3242,1485,(共144列)(第0行) 1948,0101,500T,1342,1243,1446,5453,6623,(共144列)(第1行)

1948,0101,(第2-73行)

1948,0102,500T,1623,2534,2434,3242,1845,(共144列)(第0行) 1948,0102,500T,1352,5123,1432,5473,9623,(共144列)(第1行)

1948,0102,(第2-73行)

1949,0101,1000P,4353,2346,5257,3345,1274,8756,(共144列)(第0行) 1949,0101,1000P,5734,2244,1556,7657,3452,6743,(共144列)(第1行)

1949,0101,(第2-73行) 等到添加到列表的文件的末尾。

年,月/日,数据来源(500T / 1000P)将从我而不是从文件中添加(也就是根据日期标记的文件名和文件包含的内容)

处理此问题的最佳方法是什么?我不会想到即使回到我过去的基本/ VB时代,我也做了很复杂的事情:)

编辑: 希望的意图是按日期存储所有内容。我希望每行数据保持独立(授予我开始考虑捆绑它们并使其更简单,授予144 * 73每个数据是很多元素以保持空间,也就是第0行从0开始,第1行从144开始,第2行从第288行开始,第2行从第432行开始,等等。我已经想到我能做到这一点,今天早上在这里。我希望能够轻松实现这一目标'而能够做某事......

想要在给定日期和给定指标的第6行数据上显示第5列(所有日期都是单独的文件,所有指标都是单独的文件,因此您可以轻松地在同一日期拥有4-10个文件)

data[1948,1,1,1,6,5]

从上面 1948年显然是年份,1是月份,1是日期,1是指标,6是行,5是列

是的,根据我的描述,我本来应该做的最好,我原本应该做的,现在我意识到它就像一个假人。对不起,锤子击中头部emocon的位置。

0 个答案:

没有答案