欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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.]]
"""

 

上一篇:

下一篇: