0%

Numpy 使用

1
2
3
4
5
6
7
8
# 导入 numpy
import numpy as np

# 矩阵运算

np.linalg.inv() # 矩阵求逆

np.linalg.det() # 矩阵求行列式(标量)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# dot()返回的是两个数组的点积(dot product)
np.dot() # 点积

# 1.如果处理的是一维数组,则得到的是两数组的內积
d = np.arange(0,9) # array([0, 1, 2, 3, 4, 5, 6, 7, 8])
e = d[::-1] # array([8, 7, 6, 5, 4, 3, 2, 1, 0])

np.dot(d,e) # 84

# 2.如果是二维数组(矩阵)之间的运算,则得到的是矩阵积(mastrix product)
a = np.arange(1,5).reshape(2,2) # array([[1, 2],
# [3, 4]])
b = np.arange(5,9).reshape(2,2) # array([[5, 6],
# [7, 8]])

np.dot(a,b) # array([[19, 22],
# [43, 50]])




numpy.random.randint(low, high=None, size=None, dtype='l')

返回一个随机整型数,范围从低(包括)到高(不包括),即[low, high)
默认high是None,如果只有low,那范围就是[0,low)。如果有high,范围就是[low,high)
PS: 在 Python 中,区间多是 左闭右开

np.random.randint(2, size=10)
# array([1, 0, 0, 0, 1, 1, 0, 0, 1, 0])

np.random.randint(1, size=10)
# array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])

np.random.randint(5, size=(2, 4))
# array([[4, 0, 2, 1],
# [3, 2, 2, 0]])


numpy.random.choice(a, size=None, replace=True, p=None)
从一维数组a中随机抽取,并组成指定大小(size)的数组(抽size次),
replace:True 表示可以取相同数字,False 表示不可以取相同数字
p(概率数组): 数组a 中每个元素被抽中的概率 (数组大小应与a相同), 默认抽每个元素的概率相同

np.random.choice(5) #从[0, 5)中随机输出一个随机数
#相当于np.random.randint(0, 5)

np.random.choice(np.arange(5), size=5, replace=True, p=[0.5, 0.1, 0.1, 0.2, 0.1])




np.random.rand()
通过本函数可以返回一个或一组服从 "0~1" 均匀分布的随机样本值。随机样本取值范围是[0,1)


numpy.argmax(array, axis)
用于返回一个numpy数组中最大值的索引值。当一组中同时出现几个最大值时,返回第一个最大值的索引值
也可用于多维数组
# 参考: https://blog.csdn.net/weixin_42755982/article/details/104542538

one_dim_array = np.array([1, 4, 5, 3, 7, 2, 6])
print(np.argmax(one_dim_array)) # 4

参考:
感谢帮助!