In [40]: a, b = 5, 15
In [41]: (b - a) * np.random.rand(3) + a
Out[41]: array([ 6.40061821, 6.72343487, 10.49412407])
# 一般的,可以选择已有的库函数:
In [42]: np.random.uniform(5, 15, 3)
Out[42]: array([11.10830186, 7.35193797, 8.46971257])
In [43]: np.random.randn(3)
Out[43]: array([ 1.2642241 , -1.04640246, 0.05297258])
In [44]: np.random.randn(2, 2)
Out[44]:
array([[2.65755302, 0.12266858],
[0.29899713, 0.40504878]])
# 一元正态分布
In [45]: sigma, mu = 2.5, 3
In [46]: mu + np.random.randn(3) * sigma
Out[46]: array([6.46031228, 0.57297935, 5.2692226 ])
# 已有函数
In [47]: np.random.normal(3, 2.5, 3)
Out[47]: array([2.72546019, 7.42390272, 3.71079215])
In [53]: np.random.permutation(my_list)
Out[53]: array(['b', 'd', 'a', 'c'], dtype='<U1')
In [54]: np.random.seed(0)
In [55]: np.random.rand()
Out[55]: 0.5488135039273248
In [56]: np.random.seed(0)
In [57]: np.random.rand()
Out[57]: 0.5488135039273248
In [61]: try:
....: np.r_[np.array([0,0]),np.zeros((2,1))]
....: except Exception as e:
....: Err_Msg = e
....:
In [62]: Err_Msg
Out[62]: ValueError('all the input arrays must have same number of dimensions, but the array at index 0 has 1 dimension(s) and the array at index 1 has 2 dimension(s)')
In [63]: np.r_[np.array([0,0]),np.zeros(2)]
Out[63]: array([0., 0., 0., 0.])
In [64]: np.c_[np.array([0,0]),np.zeros((2,3))]
Out[64]:
array([[0., 0., 0., 0.],
[0., 0., 0., 0.]])
In [78]: new = target.reshape(-1)
In [79]: new[new%2==0]
Out[79]: array([0, 2, 4, 6, 8])
In [80]: a = np.array([-1,1,-1,0])
In [81]: np.where(a>0, a, 5) # 对应位置为True时填充a对应元素,否则填充5
Out[81]: array([5, 1, 5, 5])
In [82]: a = np.array([-2,-5,0,1,3,-1])
In [83]: np.nonzero(a)
Out[83]: (array([0, 1, 3, 4, 5], dtype=int64),)
In [84]: a.argmax()
Out[84]: 4
In [85]: a.argmin()
Out[85]: 1
In [86]: a = np.array([0,1])
In [87]: a.any()
Out[87]: True
In [88]: a.all()
Out[88]: False
In [89]: a = np.array([1,2,3])
In [90]: a.cumprod()
Out[90]: array([1, 2, 6], dtype=int32)
In [91]: a.cumsum()
Out[91]: array([1, 3, 6], dtype=int32)
In [92]: np.diff(a)
Out[92]: array([1, 1])
In [93]: target = np.arange(5)
In [94]: target
Out[94]: array([0, 1, 2, 3, 4])
In [95]: target.max()
Out[95]: 4
In [96]: np.quantile(target, 0.5) # 0.5分位数
Out[96]: 2.0
In [97]: target = np.array([1, 2, np.nan])
In [98]: target
Out[98]: array([ 1., 2., nan])
In [99]: target.max()
Out[99]: nan
In [100]: np.nanmax(target)
Out[100]: 2.0
In [101]: np.nanquantile(target, 0.5)
Out[101]: 1.5
In [102]: target1 = np.array([1,3,5,9])
In [103]: target2 = np.array([1,5,3,-9])
In [104]: np.cov(target1, target2)
Out[104]:
array([[ 11.66666667, -16.66666667],
[-16.66666667, 38.66666667]])
In [105]: np.corrcoef(target1, target2)
Out[105]:
array([[ 1. , -0.78470603],
[-0.78470603, 1. ]])
In [106]: target = np.arange(1,10).reshape(3,-1)
In [107]: target
Out[107]:
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
In [108]: target.sum(0)
Out[108]: array([12, 15, 18])
In [109]: target.sum(1)
Out[109]: array([ 6, 15, 24])
In [114]: res = np.ones((3,2))
In [115]: res
Out[115]:
array([[1., 1.],
[1., 1.],
[1., 1.]])
In [116]: res * np.array([[2,3]]) # 第二个数组扩充第一维度为3
Out[116]:
array([[2., 3.],
[2., 3.],
[2., 3.]])
In [117]: res * np.array([[2],[3],[4]]) # 第二个数组扩充第二维度为2
Out[117]:
array([[2., 2.],
[3., 3.],
[4., 4.]])
In [118]: res * np.array([[2]]) # 等价于两次扩充,第二个数组两个维度分别扩充为3和2
Out[118]:
array([[2., 2.],
[2., 2.],
[2., 2.]])
In [122]: a = np.array([1,2,3])
In [123]: b = np.array([1,3,5])
In [124]: a.dot(b)
Out[124]: 22
In [125]: matrix_target = np.arange(4).reshape(-1,2)
In [126]: matrix_target
Out[126]:
array([[0, 1],
[2, 3]])
In [127]: np.linalg.norm(matrix_target, 'fro')
Out[127]: 3.7416573867739413
In [128]: np.linalg.norm(matrix_target, np.inf)
Out[128]: 5.0
In [129]: np.linalg.norm(matrix_target, 2)
Out[129]: 3.702459173643833
In [130]: vector_target = np.arange(4)
In [131]: vector_target
Out[131]: array([0, 1, 2, 3])
In [132]: np.linalg.norm(vector_target, np.inf)
Out[132]: 3.0
In [133]: np.linalg.norm(vector_target, 2)
Out[133]: 3.7416573867739413
In [134]: np.linalg.norm(vector_target, 3)
Out[134]: 3.3019272488946263
In [135]: a = np.arange(4).reshape(-1,2)
In [136]: a
Out[136]:
array([[0, 1],
[2, 3]])
In [137]: b = np.arange(-4,0).reshape(-1,2)
In [138]: b
Out[138]:
array([[-4, -3],
[-2, -1]])
In [139]: a@b
Out[139]:
array([[ -2, -1],
[-14, -9]])