Python多维数组切片

时间:2022-06-22 13:48:17

1. array如果维度多了,就变成ndarray。

2. list切片类似C数组,多维度分别用”[]“索引,单维度切片用”:“,如:

>>> a
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> a[1][1:3]
[5, 6]

但是这样做第二个维度索引不起作用:

>>> a[1:3][0:2]
[[4, 5, 6], [7, 8, 9]]

把list当作ndarray去slice也是不对的:

>>> a[1:3,0:2]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: list indices must be integers or slices, not tuple

3. ndarray切片用一个”[]“里面加逗号的方式,如:

>>> a=np.round(np.random.rand(3,3)*10)
array([[9., 5., 1.],
[3., 1., 5.],
[2., 5., 5.]])
>>> a[1:3,0:2]
array([[3., 1.],
[2., 5.]])

这样做第二个维度索引不起作用:

>>> a[1:3][0:2]
array([[3., 1., 5.],
[2., 5., 5.]])