官方文档内容:
numpy.prod
numpy.
prod
(a,axis = None,dtype = None,out = None,keepdims = <no value>,initial = <no value> )
返回给定轴上的数组元素的乘积。
numpy.transpose
numpy.
transpose
(a,axes = None )
置换数组的维度。
参数: | a : array_like 输入数组。 axes : 整数列表,可选 默认情况下,反转尺寸,否则根据给定的值对轴进行置换。 |
---|---|
返回: | p : ndarray a轴被置换。尽可能返回视图 |
Examples
>>>
>>> x = np.arange(4).reshape((2,2))
>>> x
array([[0, 1],
[2, 3]])
>>>
>>> np.transpose(x)
array([[0, 2],
[1, 3]])
>>>
>>> x = np.ones((1, 2, 3))
>>> np.transpose(x, (1, 0, 2)).shape
(2, 1, 3)
numpy.dot
numpy.
dot
(a,b,out =无)
两个数组的点积。
参数: | a : array_like 第一个论点。 b : array_like 第二个论点。 out : ndarray,可选 输出参数。这必须具有未使用时返回的确切类型。特别是,它必须具有正确的类型,必须是C-contiguous,并且其dtype必须是为dot(a,b)返回的dtype 。这是一个性能功能。因此,如果不满足这些条件,则会引发异常,而不是尝试灵活。 |
---|---|
返回: | 输出 : ndarray 返回a和b的点积。如果a和b都是标量或两个1-D数组,则返回标量; 否则返回一个数组。如果给出了out,则返回。 |
举: | ValueError异常 如果a的最后一个维度与b的倒数第二个维度的大小不同。 |
Examples
>>>
>>> np.dot(3, 4)
12
Neither argument is complex-conjugated:
>>>
>>> np.dot([2j, 3j], [2j, 3j])
(-13+0j)
For 2-D arrays it is the matrix product:
>>>
>>> a = [[1, 0], [0, 1]]
>>> b = [[4, 1], [2, 2]]
>>> np.dot(a, b)
array([[4, 1],
[2, 2]])
>>>
>>> a = np.arange(3*4*5*6).reshape((3,4,5,6))
>>> b = np.arange(3*4*5*6)[::-1].reshape((5,4,6,3))
>>> np.dot(a, b)[2,3,2,1,2,2]
499128
>>> sum(a[2,3,2,:] * b[1,2,:,2])
499128
numpy.squeeze
numpy.squeeze(a, axis=None)
Remove single-dimensional entries from the shape of an array.
Examples
>>>
>>> x = np.array([[[0], [1], [2]]])
>>> x.shape
(1, 3, 1)
>>> np.squeeze(x).shape
(3,)
>>> np.squeeze(x, axis=(2,)).shape
(1, 3)
numpy.concatenate
numpy.
concatenate
((a1, a2, ...), axis=0)
Join a sequence of arrays along an existing axis.
Parameters: | a1, a2, ... : sequence of array_like
axis : int, optional
|
---|---|
Returns: | res : ndarray
|
Examples
>>> a = np.array([[1, 2], [3, 4]])
>>> b = np.array([[5, 6]])
>>> np.concatenate((a, b), axis=0)
array([[1, 2],
[3, 4],
[5, 6]])
>>> np.concatenate((a, b.T), axis=1)
array([[1, 2, 5],
[3, 4, 6]])
numpy.linalg.inv
:求矩阵的逆
numpy.flatnonzero
该函数输入一个矩阵,返回扁平化后矩阵中非零元素的位置(index)
np.random.seed():
import numpy as np
if __name__ == '__main__':
i = 0
while(i<6):
if(i<3):
np.random.seed(0)
print(np.random.randn(1, 5))
else:
print(np.random.randn(1, 5))
pass
i += 1
i = 0
while(i<2):
print(np.random.randn(1, 5))
i += 1
print(np.random.randn(2, 5))
np.random.seed(0)
i = 0
while(i<8):
print(np.random.randn(1, 5))
i += 1
[[ 1.76405235 0.40015721 0.97873798 2.2408932 1.86755799]]
[[ 1.76405235 0.40015721 0.97873798 2.2408932 1.86755799]]
[[ 1.76405235 0.40015721 0.97873798 2.2408932 1.86755799]]
[[-0.97727788 0.95008842 -0.15135721 -0.10321885 0.4105985 ]]
[[ 0.14404357 1.45427351 0.76103773 0.12167502 0.44386323]]
[[ 0.33367433 1.49407907 -0.20515826 0.3130677 -0.85409574]]
[[-2.55298982 0.6536186 0.8644362 -0.74216502 2.26975462]]
[[-1.45436567 0.04575852 -0.18718385 1.53277921 1.46935877]]
[[ 0.15494743 0.37816252 -0.88778575 -1.98079647 -0.34791215]
[ 0.15634897 1.23029068 1.20237985 -0.38732682 -0.30230275]]
[[ 1.76405235 0.40015721 0.97873798 2.2408932 1.86755799]]
[[-0.97727788 0.95008842 -0.15135721 -0.10321885 0.4105985 ]]
[[ 0.14404357 1.45427351 0.76103773 0.12167502 0.44386323]]
[[ 0.33367433 1.49407907 -0.20515826 0.3130677 -0.85409574]]
[[-2.55298982 0.6536186 0.8644362 -0.74216502 2.26975462]]
[[-1.45436567 0.04575852 -0.18718385 1.53277921 1.46935877]]
[[ 0.15494743 0.37816252 -0.88778575 -1.98079647 -0.34791215]]
[[ 0.15634897 1.23029068 1.20237985 -0.38732682 -0.30230275]]
1.1.两次利用随机数种子后,即便是跳出循环后,生成随机数的结果依然是相同的。第一次跳出while循环后,进入第二个while循环,得到的两个随机数组确实和加了随机数种子不一样。但是,后面的加了随机数种子的,八次循环中的结果和前面的结果是一样的。说明,随机数种子对后面的结果一直有影响。同时,加了随机数种子以后,后面的随机数组都是按一定的顺序生成的。
1.2.在同样的随机种子后第六次的随机数生成结果,(结果高亮部分),两行五列的数组和两个一行五列的数组结果相同。说明,在生成多行随机数组时,是由单行随机数组组合而成的。
(转自https://www.cnblogs.com/subic/p/8454025.html)
numpy.random.choice
numpy.random.
choice
(a,size = None,replace = True,p = None )
从给定的1-D阵列生成随机样本
版本1.7.0中的新功能。
参数: | a : 1-D数组或int 如果是ndarray,则从其元素生成随机样本。如果是int,则生成随机样本,就好像a是np.arange(a) size : int或int的元组,可选 输出形状。如果给定的形状是例如,则 绘制样本。默认值为None,在这种情况下返回单个值。 replace : 布尔值,可选 样品是否有替代品 p : 1-D数组,可选 与a中的每个条目相关联的概率。如果没有给出,则样本假定在a中的所有条目上均匀分布。 |
---|---|
返回: | 样品 : 单品或ndarray 生成的随机样本 |
举: | ValueError异常 如果a是int且小于零,如果a或p不是1维,如果a是大小为0的数组,如果p不是概率向量,如果a和p具有不同的长度,或者如果a replace = False,样本大小大于总体大小 |
# 参数意思分别 是从a 中以概率P,随机选择3个, p没有指定的时候相当于是一致的分布
a1 = np.random.choice(a=5, size=3, replace=False, p=None)
print(a1)
# 非一致的分布,会以多少的概率提出来
a2 = np.random.choice(a=5, size=3, replace=False, p=[0.2, 0.1, 0.3, 0.4, 0.0])
print(a2)
# replacement 代表的意思是抽样之后还放不放回去,如果是False的话,那么出来的三个数都不一样,如果是
# True的话, 有可能会出现重复的,因为前面的抽的放回去了。
numpy.argsort(a, axis=-1, kind=’quicksort’, order=None)
功能: 将矩阵a按照axis排序,并返回排序后的下标
参数: a:输入矩阵, axis:需要排序的维度
返回值: 输出排序后的下标
>>> x = np.array([3, 1, 2])
>>> np.argsort(x)
array([1, 2, 0])
1
2
3
>>> x = np.array([[1, 5, 7], [3, 2, 4]])
>>> np.argsort(x, axis=0)
array([[0, 1, 1],
[1, 0, 0]]) #沿着行向下(每列)的元素进行排序
>>> np.argsort(x, axis=1)
array([[0, 1, 2],
[1, 0, 2]]) #沿着列向右(每行)的元素进行排序
numpy.random.randn()
numpy.random.randn(d0,d1,…,dn)
- randn函数返回一个或一组样本,具有标准正态分布。
- dn表格每个维度
- 返回值为指定维度的array
array([[[ 1.27820764, 0.92479163],
[-0.15151257, 1.3428253 ],
[-1.30948998, 0.15493686]],
[[-1.49645411, -0.27724089],
[ 0.71590275, 0.81377671],
[-0.71833341, 1.61637676]],
[[ 0.52486563, -1.7345101 ],
[ 1.24456943, -0.10902915],
[ 1.27292735, -0.00926068]],
[[ 0.88303 , 0.46116413],
[ 0.13305507, 2.44968809],
[-0.73132153, -0.88586716]]])