NumPy是Python中最重要、最基础的第三方模块之一,被广泛应用于科学计算、数据处理等领域。NumPy中最基础的数据类型NumPy数组,是一个高效、灵活的多维数组对象。本次攻略主要讲解如何结合一维和二维的NumPy数组进行常见的数据处理操作。
创建一维和二维的NumPy数组
首先,需要导入NumPy模块,可以使用以下代码:
import numpy as np
创建一维NumPy数组
可以通过list或者ndarray对象创建一维NumPy数组,示例如下:
arr1 = np.array([1, 2, 3, 4, 5])
arr2 = np.arange(1, 6)
print(arr1) #[1 2 3 4 5]
print(arr2) #[1 2 3 4 5]
两个代码实现的功能是一样的,都是创建了一维NumPy数组[1, 2, 3, 4, 5]。
创建二维NumPy数组
可以通过list或者ndarray对象创建二维NumPy数组,示例如下:
arr1 = np.array([[1, 2], [3, 4]])
arr2 = np.arange(1, 5).reshape((2, 2))
print(arr1)
print(arr2)
两个代码实现的功能是一样的,都是创建了二维NumPy数组[[1, 2], [3, 4]]。
一维和二维的NumPy数组的操作
索引和切片
可以通过索引和切片操作来访问NumPy数组中的元素,示例如下:
arr1 = np.array([1, 2, 3, 4, 5])
print(arr1[0]) #1
print(arr1[1:3]) #[2 3]
arr2 = np.array([[1, 2], [3, 4]])
print(arr2[0, 1]) #2
print(arr2[:, 1]) #[2 4]
第一个代码片段实现了对一维NumPy数组的索引和切片操作,第二个代码片段实现了对二维NumPy数组的索引和切片操作。
矩阵运算
一维和二维的NumPy数组,支持常见的矩阵运算操作,示例如下:
arr1 = np.array([1, 2, 3, 4, 5])
arr2 = np.array([4, 3, 2, 1, 0])
print(arr1 + arr2) #[5 5 5 5 5]
print(arr1 * arr2) #[4 6 6 4 0]
arr3 = np.array([[1, 2], [3, 4]])
arr4 = np.array([[4, 3], [2, 1]])
print(arr3 + arr4)
print(arr3 * arr4)
第一个代码片段实现了一维NumPy数组的加减乘除操作,第二个代码片段实现了二维NumPy数组的加减乘除操作。
示例说明
示例1:计算几个商品总价格
如要计算一个商店中几个商品的总价格,则可以将每个商品的价格保存在一维的NumPy数组中,然后使用NumPy的sum()函数和乘法运算符实现计算,示例如下:
prices = np.array([10.99, 5.99, 23.45, 12.78])
quantity = np.array([2, 3, 1, 4])
total_price = np.sum(prices * quantity)
print(total_price)
输出结果为:128.39
示例2:统计班级考试成绩的平均分和标准差
如要统计一个班级的学生考试成绩的平均分和标准差,可以将学生的成绩保存在一个二维的NumPy数组中,然后使用NumPy的mean()函数和std()函数实现计算,示例如下:
scores = np.array([[78, 82, 89, 93], [68, 71, 76, 80], [91, 95, 92, 98]])
mean_score = np.mean(scores)
std_score = np.std(scores)
print('平均分为:%0.2f,标准差为:%0.2f' % (mean_score, std_score))
输出结果为:平均分为:84.50,标准差为:9.45
以上就是结合一维和二维的NumPy数组的完整攻略,本文重点介绍了创建NumPy数组、索引和切片、矩阵运算等基本操作,并给出了两个代码示例。通过学习这些基础操作,能够继续更深入的NumPy应用。