You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中提取二维数组第2、3列的技术问题问询(附代码)

提取二维数组第2、3列的解决方案

嘿,我懂你想要从读取的CSV数据里生成只包含第2、3列的新二维数组对吧?咱们一步步来搞定这个问题~

先修正读取数据的小问题

你代码里先用了csv.reader(response),又调用np.genfromtxt(response),但HTTP响应对象只能被读取一次,所以直接用np.genfromtxt处理就够了,不用重复调用。

两种提取列的实用方法

方法1:读取时直接指定目标列(更高效)

在np.genfromtxt里用usecols参数,直接指定你要的列索引(注意numpy的索引从0开始,所以第2列对应索引1,第3列对应索引2):

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import numpy as np
import urllib2

url2 = 'https://api.bmreports.com/BMRS/FUELINSTHHCUR/v1?APIKey=66ky5jo5p5w0vbd&ServiceType=CSV'
response = urllib2.urlopen(url2)
# 直接读取第2、3列(索引1和2),跳过表头行
arr = np.genfromtxt(response, delimiter=",", skip_header=1, usecols=(1, 2))

方法2:读取完整数组后再筛选列

如果已经读取了完整的二维数组,用numpy的切片语法就能轻松提取目标列:

# 假设已经读取了完整的数组arr
new_arr = arr[:, [1, 2]]
# 解释:[:, [1,2]] 表示取所有行(:),以及索引为1和2的列(对应原数组第2、3列)

补充小提示

  • 如果你原来的skip_foot...是想跳过末尾的行,记得补全参数,比如skip_footer=1(根据实际需要调整数字)。
  • 要是不确定列的索引,可以先打印arr.shape看看数组的行列数,或者打印前几行确认列的位置。

内容的提问来源于stack exchange,提问作者adam Wadsworth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:02:39