1. 一位数组的索引和切片(索引从0开始)
import numpy as np
arr=np.arrange(10)
In[1]: arr
Out[1]:array([0,1,2,3,4,5,6,7,8,9])
arr_slice=arr[5:8] #数组切片是原始数组的视图,视图上的任何修改都会直接反映到源数组上
arr_slice_all=arr[:] / arr_slice_all=arr[0:9] #索引所有数据
In[2]:arr_slice[1]=1234
in[3]:arr
Out[3]:array([0,1,2,3,4,5,1234,6,7,8,9])
- 如果想要得到切片的副本而非视图,可以通过如下操作。Numpy之所以如此设计是为了避免
复制而产生的内存的占用和性能的降低
arr_copy=arr[5:8].copy()
2. 二位数组的索引和切片(索引从0开始)
arr2d=np.array([[1,2,3],[4,5,6],[7,8,9]])
In[4]:arr2d[2]
Out[4]:arrat([7,8,9])
-> 索引
In[5]:arr2d[0][2] / arr2d[0,2]
Out:3
-> 切片 :2 --切到第2行 1: --从第一列开始切
In[5]:arr2d[:2]
Out[5]:array([1,2,3],
[4,5,6])
In[6]:arr2d[:2,1:]
Out[6]:array([2,3],[5,6])
In[7]:arr2d[1,:2]
Out[7]:arry([4,5])