NumPy入门学习(四)
程序员文章站
2023-12-27 18:16:45
...
一、创建数组的函数
创建不同元素值的多维数组 | array() | 根据输入数据创建多维数组 |
ones() | 创建元素全为1的多维数组 | |
zeros() | 创建元素全为0的多维数组 | |
full() | 创建元素全为指定值的多维数组 | |
创建指定元素值的二维数组 | eye() | 创建对角矩阵形式的二维数组 |
创建指定元素值得一维数组 | linspace() | 创建等差数列的一维数组,指定开始值、终值和步长 |
arange() | 创建等差数列的一维数组,指定开始值、终值和元素个数 | |
创建随机元素值的多维数组 | random.ramdint() | 创建指定上下限范围的随机数组 |
random.binomial() | 创建符合二项分布的随机数组 | |
random.normal() | 创建符合指定正态分布的随机数组 | |
random.randn() | 创建符合标准正态分布的随机数组 | |
random.rand() | 创建0-1之间均匀分布的随机数组 |
array_one = np.ones(shape=(2, 4))
print(array_one)
"""
[[1. 1. 1. 1.]
[1. 1. 1. 1.]]
"""
array_full = np.full(shape=(2, 4), fill_value=10)
print(array_full)
"""
[[10 10 10 10]
[10 10 10 10]]
"""
array_eye = arr_eys = np.eye(4, M=6)
print(array_eye)
"""
[[1. 0. 0. 0. 0. 0.]
[0. 1. 0. 0. 0. 0.]
[0. 0. 1. 0. 0. 0.]
[0. 0. 0. 1. 0. 0.]]
"""
array_linspace = np.linspace(start=0, stop=5, num=10, endpoint=False)
print(array_linspace)
"""
[0. 0.5 1. 1.5 2. 2.5 3. 3.5 4. 4.5]
"""
np.random.seed(1)
array_randint = np.random.randint(1, 4, size=10)
print(array_randint)
"""
[2 1 1 2 2 1 1 2 1 2]
"""
np.random.seed(1)
array_binomial = np.random.binomial(1, 0.5, size=10)
print(array_binomial)
"""
[1 1 1 0 1 0 0 1 1 0]
"""
np.random.seed(1)
array_randn = np.random.randn(3, 4)
print(array_randn)
"""
[[ 1.62434536 -0.61175641 -0.52817175 -1.07296862]
[ 0.86540763 -2.3015387 1.74481176 -0.7612069 ]
[ 0.3190391 -0.24937038 1.46210794 -2.06014071]]
"""
np.random.seed(1)
array_rand = np.random.rand(3, 4)
print(array_rand)
"""
[[4.17022005e-01 7.20324493e-01 1.14374817e-04 3.02332573e-01]
[1.46755891e-01 9.23385948e-02 1.86260211e-01 3.45560727e-01]
[3.96767474e-01 5.38816734e-01 4.19194514e-01 6.85219500e-01]]
"""
np.random.seed(1)
array_normal = np.random.normal(loc=10.0, scale=1.0, size=(1,3,2))
print(array_normal)
"""
[[[11.62434536 9.38824359]
[ 9.47182825 8.92703138]
[10.86540763 7.6984613 ]]]
"""
二、元素级处理函数
一元函数 | abs() | 计算数组元素的绝对值 |
exp() | 计算以e为底的指数函数 | |
sqrt() | 计算数组元素的平方根 | |
squart() | 计算数组元素的平方 | |
sign() | 计算数组元素的正负号 | |
isnan() | 计算数组元素是否为NaN | |
二元函数 | add() | 数组之间相加 |
multiply() | 数组之间相乘 | |
subtract() | 数组之间相减 | |
divide() | 数组之间相除 | |
三元表达式 | where() | 满足条件时输出x,不满足时输出y |
array_4x3_234 = np.array([[1, 0, 1], [-2, 2, 2], [3, -3, 3], [4, 4, -4]])
array_sign = np.sign(array_4x3_234)
print(array_sign)
"""
[[ 1 0 1]
[-1 1 1]
[ 1 -1 1]
[ 1 1 -1]]
"""
array_4x3_235 = np.array([[1, 1, 1], [-2, np.nan, 2], [3, np.nan, 3], [4, 4, -4]])
array_isnan = np.isnan(array_4x3_235)
print(array_isnan)
"""
[[False False False]
[False True False]
[False True False]
[False False False]]
"""
array_4x3_236 = np.array([[1, 1, 1], [-2, 8, 2], [3, 9, 3], [4, 4, -4]])
array_where = np.where(array_4x3_236 > 5, 5, 0)
print(array_where)
"""
[[0 0 0]
[0 5 0]
[0 5 0]
[0 0 0]]
"""
三、线性代数
dot() | 两个矩阵的点积 |
linalg.inv() | 计算矩阵的乘法逆矩阵 |
linalg.solve() | 线性矩阵方程 |
A = np.mat([[1, 2], [3, 4]])
B = np.mat([[1, 2], [3, 4]])
print(np.dot(A, B))
"""
[[ 7 10]
[15 22]]
"""
A = np.mat([[1, 2], [3, 4]])
B = np.linalg.inv(A)
print(A)
"""
[[1 2]
[3 4]]
"""
print(B)
"""
[[-2. 1. ]
[ 1.5 -0.5]]
"""
A = np.mat([[1, 1, 1], [0, 2, 5], [2, 5, -1]])
B = np.mat([[6], [-4], [27]])
print('计算:A^(-1)B:')
X = np.linalg.solve(A, B)
print(X)
"""
[[ 5.]
[ 3.]
[-2.]]
"""