array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
我想要
[1,2
4,5
7,8]
ndarray [:] [0:2]
它得到了
array([[1, 2, 3],
[4, 5, 6]])
为什么!?
答案 0 :(得分:0)
ndarray[:]
返回一个相同的数组,当您使用[0:2]
时,它返回一个包含前2个元素的arry,因此[[1,2,3],[4,5,6]]
您要做的是:ndarray[0:3,0:2]
或更简单的ndarray[:,:2]
这将返回一个切片的二维切片
答案 1 :(得分:0)
ndarray [:]给出整个数组,并使用下面的[0:2]选择它的前两个元素,即[1,2,3]和[4,5,6]。 / p>
您需要在第一个括号中切片(如DavidG已建议的那样)以获得所有需要的尺寸:
ndarray [:,0:2]
P.S。:请将您的标题更改为更接近您问题的内容。
答案 2 :(得分:0)
您的代码:
import numpy as np
a = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
print(a[:])
输出:与a相同,因为您选择了所有行:
[[1 2 3] [4 5 6] [7 8 9]]
然后对其进行索引将对结果应用索引,所有行(即a[:][0:2]
等同于a[0:2]
- 选择前两行)
选择前两列:
print(a[:, 0:2])
输出(如预期):
[[1 2] [4 5] [7 8]]
我建议您浏览Numpy的索引文档:https://docs.scipy.org/doc/numpy/user/basics.indexing.html