欢迎访问宙启技术站
智能推送

Python函数库numpy的高效数组操作,包括矩阵运算、随机数生成等。

发布时间:2023-06-21 00:32:09

Python是当前最热门的编程语言之一,书写简洁、易读、易学,深受程序员的喜爱。而numpy是Python语言中的一个高效数组操作函数库,提供了强大的矩阵运算功能、高效的随机数生成功能等,广泛地应用于数值计算、数据分析、人工智能等领域。

1.矩阵运算

numpy最大的优势在于其对于矩阵运算的支持,特别是高维数组运算,速度较快且支持广泛。下面主要介绍numpy常用的矩阵运算函数:

1)numpy.array()

该方法是numpy中最基本的数组创建方法,将Python中的List、Tuple等转化为numpy中的多维数组,是numpy中大量运算函数的基础。

例如:

import numpy as np

a = np.array([1, 2, 3])

b = np.array([(1.5, 2, 3), (4, 5, 6)], dtype=float)

c = np.array([[(1.5, 2, 3), (4, 5, 6)], [(3, 2, 1), (4, 5, 6)]], dtype=float)

#输出

print(a)

print(b)

print(c)

2)矩阵加法和矩阵减法

numpy中的矩阵加法和矩阵减法与线性代数中的定义相同,不同的是numpy中可以用矩阵相乘符号*来表示两个矩阵的点积。

例如:

import numpy as np

a = np.array([[1, 2], [3, 4]])

b = np.array([[2, 0], [1, 2]])

print(np.add(a, b))    #矩阵相加,结果:[[3 2][4 6]]

print(np.subtract(a, b))   #矩阵相减,结果:[[-1,2],[2,2]]

print(np.dot(a, b))   #矩阵相乘(点积),结果:[[4,4],[10,8]]

3)矩阵转置

numpy中transpose()函数输出转置矩阵。

例如:

import numpy as np

a = np.array([[1, 2], [3, 4]])

print(np.transpose(a))    #结果:[[1 3][2 4]]

4)矩阵求逆

numpy中linalg.inv()函数实现矩阵求逆。

例如:

import numpy as np

a = np.array([[1,2],[3,4]])

print(np.linalg.inv(a))    #结果:[[-2. , 1. ][ 1.5, -0.5]]

上述函数只是numpy中支持矩阵运算的一个子集,还有很多函数可以完成矩阵变换、矩阵分解、特征向量等操作,可以根据需要灵活运用。

2.随机数生成

numpy还支持高效的随机数生成,常用的随机数生成函数包括:

1)numpy.random.rand(d0, d1,….dn)

生成给定形状的随机数组。

例如:

import numpy as np

print(np.random.rand(2,3))   #结果:[[0.90385816, 0.69744842, 0.00229893],[0.74154517, 0.32652389, 0.0013031 ]]

2)numpy.random.randn(d0,d1,….dn)

生成标准正态分布(μ=0,σ=1)的随机数字。

例如:

import numpy as np

print(np.random.randn())   #结果:0.22044199245486437

3)numpy.random.randint(low, high, size)

生成指定长度的随机数序列,并且可以指定随机数范围。

例如:

import numpy as np

print(np.random.randint(1, 10, 5))   #结果:[4 4 7 8 2]

总结

numpy作为Python语言中的经典科学计算库,在人工智能、机器学习、数据分析等领域发挥着灵活高效的作用。其中矩阵运算和随机数生成两大优势是其得到广泛应用的重要因素,对于开发者来说,熟练掌握numpy中的常见函数和运算方式,可以大大提高Python编程的效率和可读性,进而实现更加强大高效的Python算法。