NumPy数组切片问题:无法提取列,仅能获取行数据
NumPy提取数组第一列的正确切片方法
你之前的切片方式之所以只能拿到行,是因为[:][0]和[0][:]都是对行维度进行操作:
solved_thetas()[0][:]:先取第一行,再取该行的所有元素,结果是第一行solved_thetas()[:][0]:先取所有行(返回原二维数组),再取这个数组的第0个元素(还是第一行)
要提取第一列,需要用NumPy的二维数组切片语法,指定行和列的范围:
# 提取第一列(索引为0的列) print(solved_thetas()[:, 0]) # >>> array([1.72, 0.50], dtype=object)
这里的[:, 0]表示:
- 逗号前的
::保留所有行 - 逗号后的
0:只取第0列(也就是你要的第一列)
如果需要保持结果为二维数组(而非一维),可以写成[:, [0]]:
print(solved_thetas()[:, [0]]) # >>> array([[1.72], # [0.50]], dtype=object)
内容的提问来源于stack exchange,提问作者remusconnor
相关产品推荐
相关产品推荐

