一维数组的切片与索引
1.一维Numpy数组和python列表切片一样
>>> numpy.arange(9)
array([0, 1, 2, 3, 4, 5, 6, 7, 8])
可以用下标选择元素,下标范围从0到7,并且每次递增2
array[0:7:2]
array[0,2,4,6]
也可以用负数下标来反转数组:
array[::-1]
数组的转换
1.构造多维数组
>>> b = numpy.arange(24).reshape(2,3,4)#
>>> b
array([[[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]],
[[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]]])
2.多维数组转一维数组拆解函数 brvel():
>>> b.ravel()
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,17, 18, 19, 20, 21, 22, 23])
3.多维数组转一维数组拉直函数 flatten():
flatten函数与brvel的功能是一样的只不过flatten返回的是一个真实的数组。而brvel返回的是数组的视图。
4.用元组指定数组形状
b.shape = (6,4) #指定数组的形状为6行4列
5.矩阵的转置函数 transpose():
b.transpose() #实现矩阵行变列,列变行
6.调整大小,同reshape()函数功能相同,只不过函数resize()会改变所作用的数组
矩阵的合并
1.水平合并函数 hstack((a,b)) 和 concatenate((a,b),axis = 1)
import numpy as np
>>> a = np.arange(9).reshape(3,3)
>>> a
array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
>>> b = a*2
>>> b
array([[ 0, 2, 4],
[ 6, 8, 10],
[12, 14, 16]])
>>> np.hstack((a,b))
array([[ 0, 1, 2, 0, 2, 4],
[ 3, 4, 5, 6, 8, 10],
[ 6, 7, 8, 12, 14, 16]])
>>> np.concatenate((a,b),axis=1)
array([[ 0, 1, 2, 0, 2, 4],
[ 3, 4, 5, 6, 8, 10],
[ 6, 7, 8, 12, 14, 16]])
垂直合并函数vStack((a,b)) 和 concatenate((a,b),axis = 0)
>>> np.vstack((a,b))
array([[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8],
[ 0, 2, 4],
[ 6, 8, 10],
[12, 14, 16]])
>>> np.concatenate((a,b),axis = 0) #同np.concatenate((a,b)) 该函数axis默认参数为0
array([[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8],
[ 0, 2, 4],
[ 6, 8, 10],
[12, 14, 16]])