1. 简介
NumPy(Numerical Python)是一个开源的Python科学计算库,它主要提供多维数组(Numpy Array)类型和一系列操作这些数组的函数,可以说在Python的科学计算中是非常重要的一个库。
2. 安装
安装Numpy主要有两种方式,一是通过pip安装,二是通过Anaconda安装。可以根据自己的需要选择适合自己的安装方式。
2.1 pip安装
pip install numpy
2.2 Anaconda安装
如果你用的是Anaconda,Numpy已经预装在Anaconda中了,可以直接使用。
3. 基本使用
在使用Numpy之前,需要先将它引入:
import numpy as np
下面就来介绍一下Numpy的基本用法。
3.1 创建数组
Numpy的核心就是多维数组,用它可以处理多维数据。创建数组的方法主要有以下几种:
通过列表创建一维数组
通过列表创建二维数组
通过numpy中的函数创建数组
下面分别介绍。
3.1.1 通过列表创建一维数组
可以通过python中的list创建一维数组:
a = [1, 2, 3, 4]
arr_a = np.array(a)
print(arr_a)
运行上面的代码会输出如下结果:
[1 2 3 4]
arr_a就是创建的一维数组。
3.1.2 通过列表创建二维数组
可以通过二维列表创建二维数组:
b = [[1, 2], [3, 4]]
arr_b = np.array(b)
print(arr_b)
运行上面的代码会输出如下结果:
[[1 2]
[3 4]]
arr_b就是创建的二维数组。
3.1.3 通过numpy中的函数创建数组
在Numpy中,还提供了一些函数可以用来创建数组:
zeros
ones
full
eye
接下来分别介绍。
3.1.3.1 zeros函数
zeros函数用来创建一个全为0的数组:
arr_zeros = np.zeros((2, 3))
print(arr_zeros)
输出结果如下:
[[0. 0. 0.]
[0. 0. 0.]]
3.1.3.2 ones函数
ones函数用来创建一个全为1的数组:
arr_ones = np.ones((2, 3))
print(arr_ones)
输出结果如下:
[[1. 1. 1.]
[1. 1. 1.]]
3.1.3.3 full函数
full函数用来创建一个指定值的数组:
arr_full = np.full((2, 3), 5)
print(arr_full)
输出结果如下:
[[5 5 5]
[5 5 5]]
3.1.3.4 eye函数
eye函数用来创建一个单位矩阵:
arr_eye = np.eye(3)
print(arr_eye)
输出结果如下:
[[1. 0. 0.]
[0. 1. 0.]
[0. 0. 1.]]
3.2 数组属性
创建数组之后可以获取数组的相关属性,比如数组的形状、类型和维度等:
ndim:获取数组的维度
shape:获取数组的形状
size:获取数组的元素数量
dtype:获取数组元素的类型
a = [[1, 2], [3, 4]]
arr_a = np.array(a)
print(arr_a.ndim) # 输出2,表示二维
print(arr_a.shape) # 输出(2, 2),表示有2行2列
print(arr_a.size) # 输出4,表示有4个元素
print(arr_a.dtype) # 输出int64,表示元素类型为64位整型
3.3 切片操作
在Numpy中,可以对数组进行切片操作,类似于Python中的切片。
3.3.1 一维数组切片
a = [1, 2, 3, 4]
arr_a = np.array(a)
print(arr_a[1:3])
运行上面代码会输出如下结果:
[2 3]
3.3.2 二维数组切片
b = [[1, 2], [3, 4], [5, 6]]
arr_b = np.array(b)
print(arr_b[1:, 1])
运行上面代码会输出如下结果:
[4 6]
3.3.3 布尔索引切片
也可以通过布尔索引来进行切片:
a = [1, 2, 3, 4]
arr_a = np.array(a)
print(arr_a[arr_a > 2])
运行上面代码会输出如下结果:
[3 4]
3.4 数组运算
Numpy支持数组之间的加、减、乘、除等运算。具体用法如下:
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
print(a + b) # 输出[5 7 9]
print(a - b) # 输出[-3 -3 -3]
print(a * b) # 输出[ 4 10 18]
print(a / b) # 输出[0.25 0.4 0.5 ]
3.5 数组变形
可以通过reshape方法将一个数组转换成指定形状的数组:
a = np.array([1, 2, 3, 4, 5, 6])
b = a.reshape((2, 3))
print(b)
输出结果如下:
[[1 2 3]
[4 5 6]]
4. 总结
以上就是Numpy的基本用法,它也有很多高级用法,可以自行去官网查找。Numpy提供了很多数组的操作函数,在科学计算中有着非常重要的作用。