我有数百个这样的文本文件,每列由三个空格分隔。数据为一年:每月 12 个月和 31 天。
下面,我只在下面显示与问题相关的内容:
001 DIST - 阿迪巴德 安得拉 平均温度
DATE JAN FEB MAR . . . . NOV DEC
01 21.5 24.3 27.1 25.8 22.4
02 21.4 24.2 27.1 25.8 22.4
. . . . . .
. . . . . .
. . . . . .
27 23.6 26.8 30.3 23.1 21.3
28 23.8 27.0 30.6 22.9 21.3
29 23.4 31.0 22.9 21.2
30 23.5 31.1 22.6 21.4
31 23.8 31.2 . . . . 21.6
我想将每一列读入一个数组,然后对其进行平均。
为此,我正在使用这样的genfromtext()
功能:
import numpy as np
JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC = np.genfromtxt("tempmean_andhra_adilabad.txt", skiprows=3,
unpack=True, invalid_raise=False,
usecols=(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12),
autostrip=True)
如您所见,我跳过了前三行和第一列,并将每一列解压缩到一个数组中。没有invalid_raise=False
,我收到以下错误:
Traceback (most recent call last):
File "pyshell#32", line 1, in 'module'
JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC = np.genfromtxt("temp mean_andhra_adilabad.txt",skiprows=3,unpack=True,usecols=(1,2,3,4,5,6,7,8,9,10,11,12),autostrip=True)
File "C:\Python27\lib\site-packages\numpy\lib\npyio.py", line 1667, in genfromtxt
raise ValueError(errmsg)
ValueError: Some errors were detected !
Line #32 (got 12 columns instead of 12)
Line #33 (got 12 columns instead of 12)
Line #34 (got 8 columns instead of 12)
我认为这个问题是因为列的长度不同?还是其他什么原因?
我想查看输出,所以我使用了invalid_raise=False
. 现在我的问题是,当我打印任何数组时,就像JAN
我只得到 28 个元素一样。即每个数组只有 28 个元素。似乎每列仅读取 28 行,因为FEB
列以 28 天结束。但我需要每个月的数据,即 31 个元素对应JAN
30 个JUNE
等。
我如何获得每个月的所有元素?
我认为这是一个非常基本的问题,但我对 Python 很陌生NumPy
两周前才开始学习。我在 StackOverflow 和 Google 上搜索了很多问题,并了解了如何跳过行、列等。但我找不到与这个特定问题相关的任何答案。
请提出一些模块,功能,代码等。
提前致谢。