一、NumPy介绍
NumPy是一个基于Python语言的开源科学计算库,重点是支持数组计算。NumPy包含许多工具和函数,可以轻松地构建数组并使用它们来进行高效的数值计算。它是Python进行科学计算、数据分析和数据可视化的基础之一。与纯Python的列表相比,NumPy数组能够存储和处理更多的数据,是Python进行数据分析和处理时候的首选工具。
二、创建NumPy数组
使用NumPy创建数组可以方便而且非常灵活,可以按照特定的类型来创建、修改、处理和操作数组。使用NumPy创建数组有三种主要的方法:
1、将Python列表转换为NumPy数组。
import numpy as np
lst = [1, 2, 3, 4, 5]
arr = np.array(lst)
print(arr)
2、使用NumPy内置的函数创建特定类型的数组。
import numpy as np
# 创建5行3列的全为0的数组
arr1 = np.zeros((5, 3))
# 创建5行3列的全为1的数组
arr2 = np.ones((5, 3))
# 创建5行3列的随机浮点数数组
arr3 = np.random.rand(5, 3)
print(arr1)
print(arr2)
print(arr3)
3、使用NumPy的arange()方法创建数字序列。使用reshape()方法可以将一维数组变成任何形状的数组。
import numpy as np
# 创建0到9的数字序列
arr1 = np.arange(10)
# 创建0到9,并将其变成5行2列的二维数组。
arr2 = np.arange(10).reshape(5, 2)
print(arr1)
print(arr2)
三、NumPy数组的基本操作
可以使用NumPy数组的基本操作进行数据的处理和运算,包括索引、切片、数组运算、聚合和重构。使用NumPy数组进行基本操作能够提高代码的效率和简化操作的复杂程度。
1、索引和切片
与Python列表类似,可以使用整数索引和切片来访问和处理数组的元素。NumPy的数组从0开始计数,数字必须小于数组的长度。
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
print(arr[0]) #输出1
print(arr[0:3]) #输出[1, 2, 3]
2、数组运算
使用NumPy的数组运算可以进行各种数学运算。所有算术运算符都可以在数组上操作,比如加、减、乘、除,以及对数、指数、三角函数、矩阵运算等。
import numpy as np
arr1 = np.array([1, 2, 3, 4, 5])
arr2 = np.array([6, 7, 8, 9, 10])
print(arr1+arr2) #输出[ 7 9 11 13 15]
print(arr1*arr2) #输出[ 6 14 24 36 50]
print(np.sin(arr1)) #输出[ 0.84147098 0.90929743 0.14112001 -0.7568025 -0.95892427]
3、聚合函数
聚合函数用于描述数组之间的统计关系。其中最基本的聚合函数包括sum、mean、min、max、std、var、argmin、argmax等。这些函数能够方便地计算数组的统计信息,可以帮助我们更好地分析数据。
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
print(np.sum(arr)) #输出15
print(np.mean(arr)) #输出3.0
print(np.max(arr)) #输出5
print(np.min(arr)) #输出1
print(np.std(arr)) #输出1.4142135623730951
print(np.argmax(arr)) #输出4
四、多维数组的创建与运算
在NumPy中,可以轻松地定义和使用多维数组。多维数组可以使用相同的方法进行索引、切片和运算,在处理更大型、更灵活的数据时非常有用。使用NumPy进行多维数组的操作能够更好地进行数据分析和处理。
1、创建多维数组
可以使用多种方式创建多维数组,如使用Python列表、数组、随机数等。可以使用NumPy提供的ndarray对象来创建多维数组。可以指定维数和大小,并使用类型关键字指定类型。
import numpy as np
arr = np.array([[1,2,3],[4,5,6]])
print(arr)
2、运算
多维数组也可以进行标量计算和数组计算,比如加、减、乘、除、矩阵乘法、转置、复制等操作。可以使用相同的操作符运算符进行操作。
import numpy as np
arr1 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
arr2 = np.array([[2, 2, 2], [3, 3, 3], [4, 4, 4]])
print(arr1 + arr2)
print(arr1.dot(arr2)) #矩阵乘法
五、使用NumPy进行数据分析和预处理
除了基本的数组操作和运算外,NumPy还提供了一些很方便的方法和函数来进行数据分析和预处理。比如,读取和写入数据、条件筛选、排序、去重、合并、分组和聚合等。使用NumPy进行数据处理能够使代码更加简化。
1、读取和写入数据
我们可以使用NumPy读取文件中的数据,并写入到文件中。使用genfromtxt()方法可以读取csv格式的文件,并将其转换为NumPy数组。如果需要将NumPy数组写入到文件中,可以使用savetxt()方法。
import numpy as np
# 读取csv文件
data = np.genfromtxt('data.csv', delimiter=',')
# 输出读取到的数据
print(data)
# 将NumPy数组写入到csv文件中
np.savetxt('newdata.csv', data, delimiter=',')
2、条件筛选、排序、去重和聚合
使用NumPy的条件筛选、排序、去重和聚合,能够方便地将数据进行统计分析和预处理,使得分析数据更加方便和灵活。在处理数据时,可以根据需要使用灵活的方法。
import numpy as np
# 创建一个随机数组
arr = np.random.randint(0, 10, size=10)
# 打印出这个数组
print(arr)
# 筛选出大于5的数
print(arr[arr>5])
# 将该数组排序
print(np.sort(arr))
# 去重
print(np.unique(arr))
# 计算统计信息
print(np.mean(arr))
print(np.std(arr))
六、总结
NumPy是Python用于科学计算和数据分析的基础之一。在分析数据时,NumPy提供了有助于处理多维数组的函数和工具,诸如索引、切片、运算符和聚合函数等等。通过它,我们可以轻松地创建、处理和操作多维数组,优化代码效率。