Python进阶复习-Numpy库

目录

  • 使用场合
  • 创建数组
    • 从列表基础上创建
    • 从头开始创建
  • 四大运算
    • 向量化运算
    • 矩阵运算
    • 广播运算
    • 比较运算和掩码

使用场合

  • 需要使用Pyhton的for循环实现一些向量化/矩阵化操作的场景【比如向量的点乘等】

创建数组

从列表基础上创建

import numpy as np
# 一维数组
n1=np.array([1,5,3,4,5,6],dtype="float32")
print(n1)
# 二维数组
n2=np.array([[1,2,3],[4,5,6],[7,8,9]])
print(n2)
[1. 5. 3. 4. 5. 6.]
[[1 2 3]
 [4 5 6]
 [7 8 9]]

从头开始创建

np.arange(1,9,3)
  • 单位矩阵
import numpy as np

# 创建一个 3x3 的单位矩阵  
matrix = np.eye(3)

# 输出单位矩阵  
print(matrix)  

执行结果:

[[1. 0. 0.]  
 [0. 1. 0.]  
 [0. 0. 1.]]  

四大运算

向量化运算

  • 加减乘除、乘方、取余、整除、绝对值、三角函数、指数、对数
print(n2+3)
[[ 4  5  6]
 [ 7  8  9]
 [10 11 12]]
  • 两个数组的加减乘除

矩阵运算

  • 矩阵转置
import numpy as np

A = np.array([[1, 2], [3, 4]])  # 创建一个 2x2 的矩阵 A  
B = np.array([[5, 6], [7, 8]])  # 创建一个 2x2 的矩阵 B  
A_transpose = A.T
A_transpose
array([[1, 3],
       [2, 4]])
  • 矩阵乘法
import numpy as np

# 定义两个矩阵 A 和 B  
A = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])  
B = np.array([[9, 8, 7], [6, 5, 4], [3, 2, 1]])

# 计算矩阵乘法  
dot_product = np.dot(A, B)

# 输出结果  
print(dot_product)  

输出结果为:

[ 58  42  29]  
[139  99  63]  
[203 142 105]  

广播运算

  • 广播运算是一种在不同形状的数组之间进行数学运算的方法,它能够自动将较小的数组扩展到与较大的数组相同的形状,从而使它们可以进行元素级别的运算。
import numpy as np

a = np.array([[1, 2, 3], [4, 5, 6]])  # 2x3 的数组  
b = np.array([1, 2, 3])  # 1x3 的数组

result = a + b  # 广播运算  
print(result)  

执行结果:

[[2 4 6]  
 [5 7 9]]  

比较运算和掩码

  • 比较运算
import numpy as np
x=np.random.randint(100,size=(5,5))
print(x)
print(x>60)
print(np.sum(x>60))
[[68 53 32 27 41]
 [87 49 21 48 32]
 [16 31 64 72 34]
 [18 63 65 55 10]
 [93 47 66 18 73]]
[[ True False False False False]
 [ True False False False False]
 [False False  True  True False]
 [False  True  True False False]
 [ True False  True False  True]]
9
  • 掩码
x[x>60]
array([68, 87, 64, 72, 63, 65, 93, 66, 73])

你可能感兴趣的:(编程语言---Python,numpy,python,开发语言)