1. np.reshape()
作用是改变shape但保持原数据。
>>> a = np.arange(6).reshape((3, 2)) >>> a array([[0, 1], [2, 3], [4, 5]]) >>> np.reshape(a, (2, 3)) # C-like index ordering array([[0, 1, 2], [3, 4, 5]])
当参数里面包含 -1 的情况
>>> a = np.arange(16).reshape((4, 4)) >>> a array([[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11], [12, 13, 14, 15]]) >>>a.reshape(-1) [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ]
np .reshape(a, (c, -1)) 函数, 表示将矩阵或者数组a重组,其中一个参数为-1时, 表示并不知道有多少列,那么reshape函数会根据另一个参数 c 的维度计算出数组的另外一个shape属性值。
>>> a = np.array([[1,2,3], [4,5,6]]) >>> np.reshape(a, (3,-1)) array([[1, 2], [3, 4], [5, 6]])
需要了解更加详细的参数及使用信息,参看np.reshape()
2. np.hstack()
作用就是水平(按列顺序)把数组给堆叠起来
>>> a = np.array((1,2,3)) >>> b = np.array((2,3,4)) >>> np.hstack((a,b)) array([1, 2, 3, 2, 3, 4]) >>> a = np.array([[1],[2],[3]]) >>> b = np.array([[2],[3],[4]]) >>> np.hstack((a,b)) array([[1, 2], [2, 3], [3, 4]])
函数详情请参看np.hstack()
3. np.arange()
np.arange()函数分为一个参数,两个参数,三个参数三种情况 , 支持float类型
>>> np.arange(3) array([0, 1, 2]) >>> np.arange(3.0) array([ 0., 1., 2.]) >>> np.arange(3,7) array([3, 4, 5, 6]) >>> np.arange(3,7,2) array([3, 5])
详看 np. arange()
4. np.random.choice()
从数组里随机选取内容,并将选取结果放入n维array中返回。
# 从a 中以概率P,随机选择3个, p没有指定的时候相当于是一致的分布 >>>a1 = np.random.choice(a=5, size=3, replace=False, p=None) array([3,1,0]) # 非一致的分布,产生的数的概率不一致 >>>a2 = np.random.choice(a=5, size=3, replace=False, p=[0.2, 0.1, 0.3, 0.4, 0.0]) array([2, 3, 0]) # replace 代表的意思是抽样之后还放不放回去,如果是False的话,那么出来的三个数都不一样,如果是 #True的话, 有可能会出现重复的,因为前面的抽的放回去了。
具体参看 :numpy.random.choice
5. np.linalg.norm()
求范数:linalg=linear(线性)+algebra(代数),norm则表示范数。
x_norm=np.linalg.norm(x, ord=None, axis=None, keepdims=False)
x表示要度量的向量,ord表示范数的种类,axis代表轴,keepdims保持维度。
具体示例参看博客 :np.linalg.norm