赞
踩
目录
Python是一种高级编程语言,由Guido van Rossum于1991年创建。它以简洁、易读的语法而闻名,并且具有强大的功能和广泛的应用领域。Python具有丰富的标准库和第三方库,可以用于开发各种类型的应用程序,包括Web开发、数据分析、人工智能、科学计算、自动化脚本等。
Python本身是一种伟大的通用编程语言,在一些流行的库(numpy,scipy,matplotlib)的帮助下,成为了科学计算的强大环境。本系列将介绍Python编程语言和使用Python进行科学计算的方法,主要包含以下内容:
numpy | 1.21.6 | |
python | 3.7.16 |
python --version
- import sys
- import numpy as np
-
- print("Python 版本:", sys.version)
- print("NumPy 版本:", np.__version__)
NumPy(Numerical Python)是一个用于科学计算的Python库。它提供了一个强大的多维数组对象(ndarray),用于进行高效的数值运算和数据处理。Numpy的主要功能包括:
多维数组:Numpy的核心是ndarray对象,它是一个多维数组,可以存储同类型的元素。这使得Numpy非常适合处理向量、矩阵和其他多维数据结构。
数学函数:Numpy提供了许多常用的数学函数,如三角函数、指数函数、对数函数等。这些函数可以直接应用于整个数组,而无需编写循环。
广播(Broadcasting):Numpy支持不同形状的数组之间的运算,通过广播机制,可以对形状不同的数组进行逐元素的操作,而无需显式地编写循环。
线性代数运算:Numpy提供了丰富的线性代数运算函数,如矩阵乘法、求解线性方程组、特征值计算等。
随机数生成:Numpy包含了用于生成各种概率分布的随机数的函数,如均匀分布、正态分布、泊松分布等。
数据操作:Numpy提供了很多用于操作数组的函数,如切片、索引、排序、去重等。
Numpy广泛应用于科学计算、数据分析、机器学习等领域。它的高效性和便捷性使得它成为Python数据科学生态系统中不可或缺的组成部分。
NumPy的ndarray
对象是NumPy库中最重要的对象之一,也是进行科学计算的核心数据结构。ndarray
代表了一个多维的数组,可以存储相同类型的元素。
ndarray.shape
:返回表示数组形状的元组,例如(2, 3)
表示2行3列的数组。ndarray.dtype
:返回数组中元素的数据类型,例如int
、float
、bool
等。ndarray.ndim
:返回数组的维度数,例如1表示一维数组,2表示二维数组。NumPy提供了许多在数组元素级别进行数学运算的函数,例如加法、减法、乘法、除法、幂运算等。这些函数会对数组中的每个元素进行相应的数学计算,并返回一个新的数组作为结果。
a. 直接运算
- import numpy as np
-
- arr1 = np.array([1, 2, 3])
- arr2 = np.array([4, 5, 6])
-
- # 加法
- result = arr1 + arr2
- print(result) # 输出: [5 7 9]
-
- # 减法
- result = arr1 - arr2
- print(result) # 输出: [-3 -3 -3]
-
- # 乘法
- result = arr1 * arr2
- print(result) # 输出: [4 10 18]
-
- # 除法
- result = arr1 / arr2
- print(result) # 输出: [0.25 0.4 0.5]
b. 加法:np.add()
函数
- import numpy as np
-
- arr1 = np.array([1, 2, 3])
- arr2 = np.array([4, 5, 6])
-
- # 数组元素级别的加法
- result = np.add(arr1, arr2)
- print(result)
输出:
[5 7 9]
c. 减法:np.subtract()
函数
- import numpy as np
-
- arr1 = np.array([4, 5, 6])
- arr2 = np.array([1, 2, 3])
-
- # 数组元素级别的减法
- result = np.subtract(arr1, arr2)
- print(result)
输出:
[3 3 3]
d. 乘法:np.multiply()
函数
- import numpy as np
-
- arr1 = np.array([1, 2, 3])
- arr2 = np.array([4, 5, 6])
-
- # 数组元素级别的乘法
- result = np.multiply(arr1, arr2)
- print(result)
输出:
[ 4 10 18]
e. 除法:np.divide()
函数
- import numpy as np
-
- arr1 = np.array([4, 6, 8])
- arr2 = np.array([2, 3, 4])
-
- # 数组元素级别的除法
- result = np.divide(arr1, arr2)
- print(result)
输出:
[2. 2. 2.]
f. 幂运算:np.power()
函数
- import numpy as np
-
- arr = np.array([1, 2, 3])
-
- # 数组元素级别的幂运算
- result = np.power(arr, 2)
- print(result)
输出:
[1 4 9]
g. 取余与求商:
- import numpy as np
-
- arr1 = np.array([7, 8, 9])
- arr2 = np.array([2, 3, 4])
-
- # 数组的取余
- result = np.mod(arr1, arr2)
- print(result) # 输出: [1 2 1]
-
- # 数组的求商
- result = np.divmod(arr1, arr2)
- print(result) # 输出: (array([3, 2, 2]), array([1, 2, 1]))
a. 平均值:np.mean()
- import numpy as np
-
- arr = np.array([1, 2, 3, 4, 5])
-
- # 计算数组的平均值
- mean_value = np.mean(arr)
- print(mean_value)
输出:
3.0
b. 最大值和最小值:np.max()、
np.min()
使用np.max()
和np.min()
函数分别计算数组的最大值和最小值。
- import numpy as np
-
- arr = np.array([1, 2, 3, 4, 5])
-
- # 计算数组的最大值和最小值
- max_value = np.max(arr)
- min_value = np.min(arr)
-
- print(max_value, min_value)
输出:
5 1
c. 求和:np.sum()
计算数组所有元素的和
- import numpy as np
-
- arr = np.array([1, 2, 3, 4, 5])
-
- # 计算数组的元素和
- sum_value = np.sum(arr)
- print(sum_value)
输出:
15
d. 标准差和方差:np.std()
、np.var()
使用np.std()
和np.var()
函数计算数组的标准差和方差
- import numpy as np
-
- arr = np.array([1, 2, 3, 4, 5])
-
- # 计算数组的标准差和方差
- std_value = np.std(arr)
- var_value = np.var(arr)
-
- print(std_value, var_value)
输出:
1.4142135623730951 2.0
a. 矩阵乘法
- import numpy as np
-
- matrix1 = np.array([[1, 2], [3, 4]])
- matrix2 = np.array([[5, 6], [7, 8]])
-
- # 矩阵乘法
- result = np.matmul(matrix1, matrix2)
- # 或者使用 @ 运算符
- # result = matrix1 @ matrix2
-
- print(result)
输出结果为:
- [[19 22]
- [43 50]]
b. 矩阵转置
- import numpy as np
-
- matrix5 = np.array([[1, 2], [3, 4]])
- result = np.transpose(matrix5)
- # 或者使用 .T 属性
- # result = matrix5.T
- print(result)
转置结果:
- [[1 3]
- [2 4]]
c. 矩阵求逆
- import numpy as np
-
-
- matrix6 = np.array([[1, 2], [3, 4]])
- result = np.linalg.inv(matrix6)
- print(result)
求逆结果为:
- [[-2. 1. ]
- [ 1.5 -0.5]]
d. 行列式
- import numpy as np
-
- matrix7 = np.array([[1, 2], [3, 4]])
- result = np.linalg.det(matrix7)
- print(result)
行列式结果:
-2.0000000000000004
e. 特征值和特征向量
- import numpy as np
-
- matrix8 = np.array([[1, 2], [3, 4]])
- eigenvalues, eigenvectors = np.linalg.eig(matrix8)
- print("特征值:", eigenvalues)
- print("特征向量:", eigenvectors)
输出:
- 特征值: [-0.37228132 5.37228132]
- 特征向量: [[-0.82456484 -0.41597356]
f. 矩阵的迹
- import numpy as np
-
- matrix9 = np.array([[1, 2], [3, 4]])
- result = np.trace(matrix9)
- print(result)
输出:
5
g. 点积
向量的点积是指两个向量对应位置的元素相乘后再求和的运算。
- import numpy as np
-
- arr1 = np.array([1, 2, 3])
- arr2 = np.array([4, 5, 6])
-
- # 使用 np.dot 函数计算向量的点积
- result = np.dot(arr1, arr2)
- print(result) # 输出: 32
-
- # 使用数组对象的 dot 方法计算向量的点积
- result = arr1.dot(arr2)
- print(result) # 输出: 32
a. 三角函数
- import numpy as np
-
- arr = np.array([0, np.pi/2, np.pi])
-
- # 正弦函数
- result = np.sin(arr)
- print(result) # 输出: [0. 1. 0.]
-
- # 余弦函数
- result = np.cos(arr)
- print(result) # 输出: [1. 0. -1.]
-
- # 正切函数
- result = np.tan(arr)
- print(result) # 输出: [0. 无穷大 -0.]
b. 指数和对数函数
- import numpy as np
-
- arr = np.array([1, 2, 3])
-
- # 指数函数
- result = np.exp(arr)
- print(result) # 输出: [2.71828183 7.3890561 20.08553692]
-
- # 自然对数
- result = np.log(arr)
- print(result) # 输出: [0. 0.69314718 1.09861229]
-
- # 以2为底的对数
- result = np.log2(arr)
- print(result) # 输出: [0. 1. 1.5849625]
c. 取整函数
- import numpy as np
-
- arr = np.array([1.4, 2.7, 4.1])
-
- # 向下取整
- result = np.floor(arr)
- print(result) # 输出: [1. 2. 4.]
-
- # 向上取整
- result = np.ceil(arr)
- print(result) # 输出: [2. 3. 5.]
-
- # 四舍五入
- result = np.round(arr)
- print(result) # 输出: [1. 3. 4.]
d. 绝对值
- import numpy as np
-
- arr = np.array([-1, -2, 3, -4, 5])
-
- # 数组元素的绝对值
- result = np.abs(arr)
- print(result) # 输出: [1 2 3 4 5]
e. 累加和和累积
- import numpy as np
-
- arr = np.array([1, 2, 3, 4, 5])
-
- # 累加和
- result = np.cumsum(arr)
- print(result) # 输出: [ 1 3 6 10 15]
-
- # 累积积
- result = np.cumprod(arr)
- print(result) # 输出: [ 1 2 6 24 120]
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。