1. numpy简介
Numpy是Python中用于处理大型矩阵和数组的库。其主要依据是多维数组对象(ndarray),这些对象是在相同数据类型上的元素的集合。这使得Numpy允许大量元素的矩阵运算在Python中进行,而这些运算是基于C语言性能优化的。这使得Numpy成为数据科学和机器学习中的重要工具,因为这些任务通常涉及大量的数据集合和运算。
2. 安装Numpy
2.1 在Windows上安装numpy
对于Windows用户,最简单的方法是使用Anaconda或者Miniconda Python发行版。这些发行版包括Numpy和其他常用的Python库。安装完成后,用户可以使用以下命令确认是否已经安装了Numpy。
conda list numpy
如果已经安装了Numpy,则会显示其名称和版本。如果没有,则可以用下列命令安装最新版本的Numpy。
conda install numpy
2.2 在Linux上安装numpy
Linux用户使用以下命令安装Numpy。
sudo apt-get install python-numpy
3. 创建ndarray数组
在Numpy中,ndarray是一个固定大小的数组对象,其元素是同种数据类型。Numpy数组的新手可以使用以下函数创建一个ndarray数组。
3.1 从Python列表创建ndarray数组
可以从Python列表创建ndarray数组。例如:
import numpy as np
list1 = [0, 1, 2, 3, 4]
arr = np.array(list1)
print(arr)
这将输出:
[0 1 2 3 4]
3.2 使用numpy.arange函数创建ndarray数组
使用numpy.arange函数可以创建一个从一个范围中返回值的ndarray数组:
import numpy as np
arr = np.arange(0, 10, 2)
print(arr)
这将输出:
[0 2 4 6 8]
3.3 使用numpy.zeros创建ndarray数组
使用numpy.zeros函数创建一个具有指定大小的单精度浮点数的全零数组:
import numpy as np
arr = np.zeros((3, 5))
print(arr)
这将创建一个3行5列的数组,其元素全部为0.输出:
[[0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0.]]
4. 索引和切片
下面介绍如何按照索引和切片读取和修改Numpy中ndarray数组。
4.1 索引和切片
使用方括号可访问ndarray数组中的元素。例如:
import numpy as np
arr = np.array([0, 1, 2, 3, 4])
idx = 2
print("访问元素:", arr[idx])
这将输出:
访问元素: 2
可以使用切片符号“:”对ndarray数组进行切片。例如:
import numpy as np
arr = np.array([0, 1, 2, 3, 4])
slice = arr[2:4]
print("切片结果:", slice)
这将输出:
切片结果: [2 3]
5. 矩阵运算
Numpy是一个用于高性能科学计算和数据分析的 Python 库。它为数组计算提供了大量支持和有效的数学运算工具。Numpy 具有广泛使用的线性代数、傅里叶变换和随机数生成功能。以下介绍矩阵加法、乘法、转置以及逆矩阵等运算。
5.1 矩阵加法
可以使用numpy.add函数执行numpy数组的加法。
import numpy as np
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
arr3 = np.add(arr1, arr2)
print("加法结果:", arr3)
这将输出:
加法结果: [5 7 9]
5.2 矩阵乘法
使用numpy.dot进行矩阵乘法。
import numpy as np
arr1 = np.array([[1, 2], [3, 4]])
arr2 = np.array([[5, 6], [7, 8]])
arr3 = np.dot(arr1, arr2)
print("矩阵乘法结果:", arr3)
这将输出:
矩阵乘法结果: [[19 22]
[43 50]]
5.3 转置
使用numpy的transpose函数可以进行矩阵的转置操作。
import numpy as np
arr1 = np.array([[1, 2], [3, 4]])
arr2 = arr1.transpose()
print("转置结果:", arr2)
这将输出:
转置结果: [[1 3]
[2 4]]
5.4 矩阵求逆
使用numpy.linalg.inv函数可以求矩阵的逆。
import numpy as np
arr1 = np.array([[1, 2], [3, 4]])
arr2 = np.linalg.inv(arr1)
print("矩阵求逆结果:", arr2)
这将输出:
矩阵求逆结果: [[-2. 1. ]
[ 1.5 -0.5]]