您的位置:

学习numpy库基础知识

一、何为numpy库

NumPy是Python里面最重要的基础性库之一,可以让Python支持大量的高端数值计算,是科学计算和数据分析领域的必备工具。NumPy用来存储和处理大型矩阵和数组,提供接口,让用户可以在它们的上面进行数值运算。

NumPy的安装十分方便,使用pip就可以安装。在命令行中输入如下命令,即可完成安装。

pip install numpy

安装完成后,在Python文件中使用import语句进行调用NumPy。

import numpy as np

二、NumPy中的基础数据类型

NumPy的基础数据类型是ndarray,即n维数组,是一个表格类型的数据结构,它里面存储了大量的数值数据。ndarray有三个非常重要的属性:shape、dtype和size。shape代表数组的维度,可以是一维,二维等等;dtype代表数组中的元素类型;size表示数组中含有的元素个数。

以下是创建ndarray的几个方法。

1、直接创建

# 首先需要导入numpy模块
import numpy as np

# 定义一维数组
arr1 = np.array([1, 2, 3, 4, 5])

# 定义二维数组
arr2 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

2、使用特定的函数

# 创建一个全零的3x3矩阵
zeros = np.zeros((3,3))

# 创建一个全1的5个元素的一维数组
ones = np.ones(5)

# 创建单位矩阵
eye = np.eye(3)

三、NumPy中的数组计算

NumPy提供了非常丰富的数组计算功能。数组之间的计算可以使用基本的算术运算符(如 +、-、*、/),而且可以对数组中的每个元素进行计算。

以下是几个对数组进行计算的示例。

1、逐元素计算

import numpy as np

arr1 = np.array([1, 2, 3, 4, 5])
arr2 = np.array([2, 4, 6, 8, 10])

# 逐元素相加
result = arr1 + arr2

# 逐元素相减
result = arr2 - arr1

# 逐元素相乘
result = arr1 * arr2

# 逐元素相除
result = arr2 / arr1

2、数学计算函数

NumPy还提供了很多数学计算函数,可以直接进行调用。以下是一些常见的数学计算函数。

import numpy as np

# 求平方根
result = np.sqrt(arr1)

# 求正弦值
result = np.sin(arr1)

# 求反正切值
result = np.arctan(arr1)

# 求指数
result = np.exp(arr1)

# 求自然对数
result = np.log(arr1)

四、NumPy数组的索引和切片操作

NumPy数组的索引和切片操作跟Python的列表非常相似。ndarray对象是基于多维数组的,所以需要用方括号来指定每个维度的索引。同时,可以使用切片操作来获取数组中的部分数据。

以下是一些示例代码。

1、对一维数组进行索引和切片操作

import numpy as np

arr1 = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])

# 获取第3个元素
print(arr1[2])  # 输出3

# 获取第2到4个元素(不包括第4个)
print(arr1[1:3])  # 输出[2 3]

# 获取第一个到倒数第二个元素(不包括倒数第一个)
print(arr1[:-1])  # 输出[1 2 3 4 5 6 7 8]

2、对二维数组进行索引和切片操作

import numpy as np

arr2 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# 获取第2行第3列的元素
print(arr2[1, 2])  # 输出6

# 获取第1行的所有元素
print(arr2[0, :])  # 输出[1 2 3]

# 获取第2和第3行的所有元素
print(arr2[1:, :])  # 输出[[4 5 6] [7 8 9]]

五、NumPy中的矩阵运算

NumPy还提供了大量的矩阵运算功能,可以使用dot()函数来进行矩阵乘法的运算。在使用此函数之前,需要保证两个矩阵的行列数正确才能进行乘法运算。

以下是一些示例代码。

1、进行矩阵乘法运算

import numpy as np

arr1 = np.array([[1, 2, 3], [4, 5, 6]])
arr2 = np.array([[7, 8], [9, 10], [11, 12]])

# 进行乘法运算
result = np.dot(arr1, arr2)

print(result)
# 输出[[ 58  64]
#     [139 154]]

2、进行矩阵的转置

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6]])

# 进行转置
result = arr.T

print(result)
# 输出[[1 4]
#     [2 5]
#     [3 6]]

六、总结

本文简单介绍了NumPy的基础知识,包括了NumPy库的定义和作用、ndarray数组的属性和创建方法、数组的计算、数组的索引和切片操作、以及矩阵的运算。对于初学者来说,这些基础知识是非常重要的,是使用NumPy进行科学计算和数据分析的前置知识。