拉出python中2d数组的第2,3列
大家好,我有一个二维数组,我想创建一个只有列2,3的新二维数组 这是我的密码拉出python中2d数组的第2,3列,python,arrays,numpy,multidimensional-array,Python,Arrays,Numpy,Multidimensional Array,大家好,我有一个二维数组,我想创建一个只有列2,3的新二维数组 这是我的密码 #!/user # -*- coding: utf-8 -*- import csv import urllib2 import numpy as np url = 'https://api.bmreports.com/BMRS/FUELINST/v1?APIKey=66ky5jo5p5w0vbd&ServiceType=CSV' url2 = 'https://api.bmreports.com/BMR
#!/user
# -*- coding: utf-8 -*-
import csv
import urllib2
import numpy as np
url = 'https://api.bmreports.com/BMRS/FUELINST/v1?APIKey=66ky5jo5p5w0vbd&ServiceType=CSV'
url2 = 'https://api.bmreports.com/BMRS/FUELINSTHHCUR/v1?APIKey=66ky5jo5p5w0vbd&ServiceType=CSV'
response = urllib2.urlopen(url2)
cr = csv.reader(response)
arr = np.genfromtxt(response,delimiter=",", skip_header=1, skip_footer=2,dtype=None)
data = arr[:, [1:2]]
print data
所以数据是这样回来的
[('FUELINSTHHCUR', 'CCGT', 10430, 35.8, 10282, 35.2, 205996, 32. )
('FUELINSTHHCUR', 'OCGT', 0, 0. , 0, 0. , 17, 0. )
('FUELINSTHHCUR', 'OIL', 0, 0. , 0, 0. , 0, 0. )
('FUELINSTHHCUR', 'COAL', 0, 0. , 0, 0. , 0, 0. )
('FUELINSTHHCUR', 'NUCLEAR', 6963, 23.9, 6970, 23.9, 167591, 26. )
('FUELINSTHHCUR', 'WIND', 6986, 24. , 7061, 24.2, 160036, 24.9)
('FUELINSTHHCUR', 'PS', 297, 1. , 412, 1.4, 8136, 1.3)
('FUELINSTHHCUR', 'NPSHYD', 322, 1.1, 319, 1.1, 8015, 1.2)
('FUELINSTHHCUR', 'OTHER', 129, 0.4, 128, 0.4, 3093, 0.5)
('FUELINSTHHCUR', 'INTFR', 1494, 5.1, 1494, 5.1, 31731, 4.9)
('FUELINSTHHCUR', 'INTIRL', 0, 0. , 0, 0. , 2650, 0.4)
('FUELINSTHHCUR', 'INTNED', 882, 3. , 880, 3. , 18991, 2.9)
('FUELINSTHHCUR', 'INTEW', 0, 0. , 0, 0. , 0, 0. )
('FUELINSTHHCUR', 'BIOMASS', 1608, 5.5, 1630, 5.6, 37688, 5.9)]
我正在尝试创建一个新的2d数组,它只返回列,所以看起来像这样
[('CCGT', 10430)
('OCGT', 0)
('OIL', 0)
('COAL', 0)
('NUCLEAR', 6963)
('WIND', 6986)
('PS', 297)
('NPSHYD', 322)
('OTHER', 129)
('INTFR', 1494)
('INTIRL', 0)
('INTNED', 882)
('INTEW', 0)
('BIOMASS', 1608)]
首先,您需要使用Numpy数组来保存项目而不是列表,然后您可以将列表中的列索引传递到第二个轴以获得所需的结果:
data = arr[:, [2, 3]]
或者像下面这样切片:
data = arr[:, 2:4]
此外,如果您正在读取的字符串格式正确,而不是使用csv
你可以用
函数加载数据。如果您查看此代码示例,它可能会对您有所帮助 它假设您收集的第一个值是numpy数组中的单个字符串……因此每行都包含逗号和带引号的元素,但它们都嵌入到单个元素中 变量'lst'是一个列表,用于单步遍历所有数组元素,并创建多维列表,其中包含逗号分隔的元素作为单个字符串 变量“tmp”是由新解析的“lst”构造的numpy数组 var'data'是来自'tmp'的切片numpy数组,其中只包含您要查找的列 希望这有助于 import numpy as np def ElementSplit(x) : return x.split(",") ElementSplit = np.vectorize(ElementSplit) arr = np.array([["'FUELINSTHHCUR', 'CCGT', 10430, 35.8, 10282, 35.2, 205996, 32. "], ["'FUELINSTHHCUR', 'OCGT', 0, 0. , 0, 0. , 17, 0. "], [" 'FUELINSTHHCUR', 'OIL', 0, 0. , 0, 0. , 0, 0. "], [" 'FUELINSTHHCUR', 'COAL', 0, 0. , 0, 0. , 0, 0. "], [" 'FUELINSTHHCUR', 'NUCLEAR', 6963, 23.9, 6970, 23.9, 167591, 26. "], [" 'FUELINSTHHCUR', 'WIND', 6986, 24. , 7061, 24.2, 160036, 24.9"], [" 'FUELINSTHHCUR', 'PS', 297, 1. , 412, 1.4, 8136, 1.3"], [" 'FUELINSTHHCUR', 'NPSHYD', 322, 1.1, 319, 1.1, 8015, 1.2"], [" 'FUELINSTHHCUR', 'OTHER', 129, 0.4, 128, 0.4, 3093, 0.5"], [" 'FUELINSTHHCUR', 'INTFR', 1494, 5.1, 1494, 5.1, 31731, 4.9"], [" 'FUELINSTHHCUR', 'INTIRL', 0, 0. , 0, 0. , 2650, 0.4"], [" 'FUELINSTHHCUR', 'INTNED', 882, 3. , 880, 3. , 18991, 2.9"], [" 'FUELINSTHHCUR', 'INTEW', 0, 0. , 0, 0. , 0, 0. "], [" 'FUELINSTHHCUR', 'BIOMASS', 1608, 5.5, 1630, 5.6, 37688, 5.9"]]) print " --arr--" print arr lst = [] for items in arr: lst.append(items[0].split(", ")) print " --lst--" print lst exit #data = arr[:] tmp = np.array(lst) print " --tmp--" print tmp data = tmp[:,[1,2]] print " --data--" print data 将numpy作为np导入 def ElementSplit(x):返回x.split(“,”) ElementSplit=np.矢量化(ElementSplit) arr=np.数组([[“'FUELINSTHHCUR','CCGT',1043035.810282,35.2205996,32.”, [“'FUELINSTHHCUR','OCGT',0,0,0,0,17,0.”, [“'FUELINSTHHCUR'、'OIL',0,0,0,0,0,0.”, [“'FUELINSTHHCUR'、'COAL',0,0,0,0,0,0.”, [“‘FUELINSTHHCUR’、‘NUCLEAR’、6963、23.9、6970、23.9、167591、26。”, [“'FUELINSTHHCUR'、'WIND',6986,24,7061,24.2,160036,24.9”], [“'FUELINSTHHCUR','PS',297,1,412,1.4,8136,1.3”], [“'FUELINSTHHCUR','NPSHYD',322,1.1319,1.18015,1.2”], [“'FUELINSTHHCUR'、'OTHER',129,0.4128,0.43093,0.5”], [“'FUELINSTHHCUR','INTFR',1494,5.1,1494,5.1,31731,4.9”], [“'FUELINSTHHCUR','INTIRL',0,0,0,0,2650,0.4”], [“'FUELINSTHHCUR','INTNED',882,3,880,3,18991,2.9”], [“'FUELINSTHHCUR','INTEW',0,0,0,0,0,0.”, [“‘FUELINSTHHCUR’、‘Biomatical’、1608、5.51630、5.637688、5.9”]) 打印--arr--” 打印arr lst=[] 对于arr中的项目: lst.append(项[0]。拆分(“,”) 打印--lst--” 打印lst 出口 #数据=arr[:] tmp=np.数组(lst) 打印--tmp--” 打印tmp 数据=tmp[:,[1,2]] “打印”--数据--” 打印数据 输出结果如下所示 $python main.py --arr-- [["'FUELINSTHHCUR', 'CCGT', 10430, 35.8, 10282, 35.2, 205996, 32. "] ["'FUELINSTHHCUR', 'OCGT', 0, 0. , 0, 0. , 17, 0. "] [" 'FUELINSTHHCUR', 'OIL', 0, 0. , 0, 0. , 0, 0. "] [" 'FUELINSTHHCUR', 'COAL', 0, 0. , 0, 0. , 0, 0. "] [" 'FUELINSTHHCUR', 'NUCLEAR', 6963, 23.9, 6970, 23.9, 167591, 26. "] [" 'FUELINSTHHCUR', 'WIND', 6986, 24. , 7061, 24.2, 160036, 24.9"] [" 'FUELINSTHHCUR', 'PS', 297, 1. , 412, 1.4, 8136, 1.3"] [" 'FUELINSTHHCUR', 'NPSHYD', 322, 1.1, 319, 1.1, 8015, 1.2"] [" 'FUELINSTHHCUR', 'OTHER', 129, 0.4, 128, 0.4, 3093, 0.5"] [" 'FUELINSTHHCUR', 'INTFR', 1494, 5.1, 1494, 5.1, 31731, 4.9"] [" 'FUELINSTHHCUR', 'INTIRL', 0, 0. , 0, 0. , 2650, 0.4"] [" 'FUELINSTHHCUR', 'INTNED', 882, 3. , 880, 3. , 18991, 2.9"] [" 'FUELINSTHHCUR', 'INTEW', 0, 0. , 0, 0. , 0, 0. "] [" 'FUELINSTHHCUR', 'BIOMASS', 1608, 5.5, 1630, 5.6, 37688, 5.9"]] --lst-- [["'FUELINSTHHCUR'", "'CCGT'", '10430', '35.8', '10282', '35.2', '205996', '32. '], ["'FUELINSTHHCUR'", "'OCGT'", ' 0', ' 0. ', ' 0', ' 0. ', ' 17', ' 0. '], [" 'FUELINSTHHCUR'", "'OIL'", ' 0', ' 0. ', ' 0', ' 0. ', ' 0', ' 0. '], [" 'FUELINSTHHCUR'", "'COAL'", ' 0', ' 0. ', ' 0', ' 0. ', ' 0', ' 0. '], [" 'FUELINSTHHCUR'", "'NUCLEAR'", ' 6963', '23.9', ' 6970', '23.9', '167591', '26. '], [" 'FUELINSTHHCUR'", "'WIND'", ' 6986', '24. ', ' 7061', '24.2', '160036', '24.9'], [" 'FUELINSTHHCUR'", "'PS'", ' 297', ' 1. ', ' 412', ' 1.4', ' 8136', ' 1.3'], [" 'FUELINSTHHCUR'", "'NPSHYD'", ' 322', ' 1.1', ' 319', ' 1.1', ' 8015', ' 1.2'], [" 'FUELINSTHHCUR'", "'OTHER'", ' 129', ' 0.4', ' 128', ' 0.4', ' 3093', ' 0.5'], [" 'FUELINSTHHCUR'", "'INTFR'", ' 1494', ' 5.1', ' 1494', ' 5.1', ' 31731', ' 4.9'], [" 'FUELINSTHHCUR'", "'INTIRL'", ' 0', ' 0. ', ' 0', ' 0. ', ' 2650', ' 0.4'], [" 'FUELINSTHHCUR'", "'INTNED'", ' 882', ' 3. ', ' 880', ' 3. ', ' 18991', ' 2.9'], [" 'FUELINSTHHCUR'", "'INTEW'", ' 0', ' 0. ', ' 0', ' 0. ', ' 0', ' 0. '], [" 'FUELINSTHHCUR'", "'BIOMASS'", ' 1608', ' 5.5', ' 1630', ' 5.6', ' 37688', ' 5.9']] --tmp-- [["'FUELINSTHHCUR'" "'CCGT'" '10430' '35.8' '10282' '35.2' '205996' '32. '] ["'FUELINSTHHCUR'" "'OCGT'" ' 0' ' 0. ' ' 0' ' 0. ' ' 17' ' 0. '] [" 'FUELINSTHHCUR'" "'OIL'" ' 0' ' 0. ' ' 0' ' 0. ' ' 0' ' 0. '] [" 'FUELINSTHHCUR'" "'COAL'" ' 0' ' 0. ' ' 0' ' 0. ' ' 0' ' 0. '] [" 'FUELINSTHHCUR'" "'NUCLEAR'" ' 6963' '23.9' ' 6970' '23.9' '167591' '26. '] [" 'FUELINSTHHCUR'" "'WIND'" ' 6986' '24. ' ' 7061' '24.2' '160036' '24.9'] [" 'FUELINSTHHCUR'" "'PS'" ' 297' ' 1. ' ' 412' ' 1.4' ' 8136' ' 1.3'] [" 'FUELINSTHHCUR'" "'NPSHYD'" ' 322' ' 1.1' ' 319' ' 1.1' ' 8015' ' 1.2'] [" 'FUELINSTHHCUR'" "'OTHER'" ' 129' ' 0.4' ' 128' ' 0.4' ' 3093' ' 0.5'] [" 'FUELINSTHHCUR'" "'INTFR'" ' 1494' ' 5.1' ' 1494' ' 5.1' ' 31731' ' 4.9'] [" 'FUELINSTHHCUR'" "'INTIRL'" ' 0' ' 0. ' ' 0' ' 0. ' ' 2650' ' 0.4'] [" 'FUELINSTHHCUR'" "'INTNED'" ' 882' ' 3. ' ' 880' ' 3. ' ' 18991' ' 2.9'] [" 'FUELINSTHHCUR'" "'INTEW'" ' 0' ' 0. ' ' 0' ' 0. ' ' 0' ' 0. '] [" 'FUELINSTHHCUR'" "'BIOMASS'" ' 1608' ' 5.5' ' 1630' ' 5.6' ' 37688' ' 5.9']] --data-- [["'CCGT'" '10430'] ["'OCGT'" ' 0'] ["'OIL'" ' 0'] ["'COAL'" ' 0'] ["'NUCLEAR'" ' 6963'] ["'WIND'" ' 6986'] ["'PS'" ' 297'] ["'NPSHYD'" ' 322'] ["'OTHER'" ' 129'] ["'INTFR'" ' 1494'] ["'INTIRL'" ' 0'] ["'INTNED'" ' 882'] ["'INTEW'" ' 0'] ["'BIOMASS'" ' 1608']] $python main.py --啊-- [“'FUELINSTHHCUR','CCGT',10430,35.8,10282,35.2,205996,32.” [“'FUELINSTHHCUR','OCGT',0,0,0,0,17,0.” [“'FUELINSTHHCUR','OIL',0,0,0,0,0,0.” [“'FUELINSTHHCUR'、'COAL',0,0,0,0,0,0.” [“‘FUELINSTHHCUR’、‘NUCLEAR’、6963、23.9、6970、23.9、167591、26。”] [“‘FUELINSTHHCUR’、‘WIND’、6986、24、7061、24.2、160036、24.9”] [“'FUELINSTHHCUR','PS',297,1,412,1.4,8136,1.3”] [“'FUELINSTHHCUR','NPSHYD',322,1.1319,1.18015,1.2”] [“‘FUELINSTHHCUR’、‘其他’、129、0.4、128、0.4、3093、0.5”] [“'FUELINSTHHCUR','INTFR',1494,5.1,1494,5.1,31731,4.9”] [“'FUELINSTHHCUR','INTIRL',0,0,0,0,2650,0.4”] [“'FUELINSTHHCUR','INTNED',882,3,880,3,18991,2.9”] [“'FUELINSTHHCUR','INTEW',0,0,0,0,0,0.” [“‘FUELINSTHHCUR’、‘Biomatical’、1608、5.51630、5.637688、5.9”] --lst-- [“'FUELINSTHHCUR'”、'CCGT'、'10430'、'35.8'、'10282'、'35.2'、'205996'、'32'.]、[“'FUELINSTHHCUR'、'OCGT'、'0'、'0'、'0'、'0'、'0'.]、[“FUELINSTHHCUR'、'0'、'0'、'0'、'0'、'0'、'0'、'0'.][“‘FUELINSTHHCUR’、‘NUCLEAR’、‘6963’、‘23.9’、‘6970’、‘23.9’、‘167591’、‘26’、[‘FUELINSTHHCUR’、‘WIND’、‘6986’、‘24’、‘7061’、‘24.2’、‘160036’、‘24.9’、[‘FUELINSTHHCUR’、‘PS’、‘297’、‘1’、‘412’、‘1.4’、‘8136’、‘1.3’、[‘FUELINSTHHCUR’、‘NPSHYD’、‘322’、‘1.1’、‘1’、‘1.2’、‘8015’、‘1.2’。”“FUELINSTHHCUR”、“其他”、“129”、“0.4”、“128”、“0.4”、“3093”、“0.5”]、[“FUELINSTHHCUR”、“INTFR”、“1494”、“5.1”、“1494”、“5.1”、“31731”、“4.9”]、[“FUELINSTHHCUR”、“INTIRL”、“0”、“0”、“0”、“0”、“0.0”、“0.4”]、[“FUELINSTHHCUR”、“INTNED”、“882”、“3”、“880”、“3”、“18991”、“2.9”]、[”“FUELINSTHHCUR”、“INTEW”、“0”、“0”、“0”、“0”、“0.”、[“FUELINSTHHCUR”、“生物质”、“1608”、“5.5”、“1630”、“5.6”、“37688”、“5.9]”] --tmp-- [“'FUELINSTHHCUR'”'CCGT''10430''35.8''10282''35.2''205996''32'.] [“'FUELINSTHHCUR'”'OCGT''0''0.'0''0.'17''0.] [“'FUELINSTHHCUR'”“'OIL'”0''0.“0''0.“0''0.” [“'FUELINSTHHCUR'”“'COAL'”'0''0.'0''0.'0''0.] [“FUELINSTHHCUR”“核能”“6963”“23.9”“6970”“23.9”“167591” '26. '] [“'FUELINSTHHCUR'”“'WIND'”'6986''24.“'7061''24.2''160036''24.9'] [“'FUELINSTHHCUR'”“'PS'”297''1.“'412''1.4''8136''1.3'] [“'FUELINSTHHCUR'”'NPSHYD''322''1.1''319''1.1''8015' ' 1.2'] [“FUELINSTHHCUR”“其他”“129”“0.4”“128”“0.4”“3093” ' 0.5'] [“'FUELINSTHHCUR'”'INTFR''1494''5.1''1494''5.1''31731' ' 4.9'] [“'FUELINSTHHCUR'”“'INTIRL'”