1.numpy数组的特点在于,大小相等的数组之间,任何算数运算都会将运算应用到元素级。
请看下面的例子:
arr = np.array([[1.,2.,3.],[4.,5.,6.]])
arr
输出:
array([[ 1., 2., 3.],
[ 4., 5., 6.]])
arr * arr
输出:
array([[ 1., 4., 9.],
[ 16., 25., 36.]])
arr - arr
输出:
array([[ 0., 0., 0.],
[ 0., 0., 0.]])
1 / arr
输出:
array([[ 1. , 0.5 , 0.33333333],
[ 0.25 , 0.2 , 0.16666667]])
arr ** 0.5
输出:
array([[ 1. , 1.41421356, 1.73205081],
[ 2. , 2.23606798, 2.44948974]])
2.数据
索引:Python是从0的位置开始
arr = np.arange(10)
arr
输出:
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
arr[5]
输出:
5
arr[5:8]
输出:
array([5, 6, 7])
3.索引位置可以用来
更改数组值:
arr[5:8] = 12
输出:
array([ 0, 1, 2, 3, 4, 12, 12, 12, 8, 9])
4.从上面可以看出,跟列表最重要的区别是,数组切片是原始数组的视图。这意味着数据不会被复制,任何修改都会直接反映到源数组上:
arr_slice = arr[5:8]
arr_slice[1] = 12345
arr
输出:
array([ 0, 1, 2, 3, 4, 12, 12345, 12, 8, 9])
arr_slice[:] = 64
输出:
array([ 0, 1, 2, 3, 4, 64, 64, 64, 8, 9])
5.如果你不要改变原始数组,需要
复制一份,可以这样操作:
arr_copy = arr[5:8].copy()
6.对于
高维数组,索