结合一维和二维的NumPy数组

  • Post category:Python

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应用。