使用 NumPy 进行数组操作的示例

简介: 使用 NumPy 进行数组操作的示例

使用 NumPy 进行数组操作的示例
NumPy 是Python中一个强大的数值计算库,它提供了高效的数组操作和数学运算。本文将通过一个具体示例,演示如何使用 NumPy 创建数组、进行基本统计分析、执行元素级运算以及数组重塑等操作。

示例任务

我们将创建一个名为 A 的 4 x 4 的 NumPy 数组,其元素为数字 3 到 18。接着,我们将输出该数组中的最小值、最大值和平均值,并执行一系列其他操作,包括平方、堆叠及乘积计算。

步骤 1: 创建数组 A
首先,我们使用 np.arange() 创建一个包含从 3 到 18 的数组,并使用 np.reshape() 将其调整为 4 x 4 的形状。

import numpy as np

# 创建数组 A
A = np.arange(3, 19).reshape(4, 4)
print("Array A:")
print(A)

运行结果如下:

Array A:
[[ 3  4  5  6]
 [ 7  8  9 10]
 [11 12 13 14]
 [15 16 17 18]]


步骤 2: 输出数组 A 的统计信息

我们可以使用 NumPy 提供的函数来获取数组 A 的最小值、最大值和平均值。

# 输出 A 的最小值、最大值和平均值
min_value = np.min(A)
max_value = np.max(A)
mean_value = np.mean(A)

print(f"最小值: {min_value}")
print(f"最大值: {max_value}")
print(f"平均值: {mean_value}")

运行结果如下:

最小值: 3
最大值: 18
平均值: 10.5

步骤 3: 计算 A 中每个元素的平方,并保存到数组 B
使用 ** 运算符对 A 中的每个元素求平方,然后将结果保存到名为 B 的数组中。

# 计算每个元素的平方,保存到 B
B = A ** 2
print("Array B (A的平方):")
print(B)

运行结果如下:

Array B (A的平方):
[[  9  16  25  36]
 [ 49  64  81 100]
 [121 144 169 196]
 [225 256 289 324]]

步骤 4: 使用 np.vstack() 将 A 和 B 堆叠,并保存到 C
然后,我们将 A 和 B 垂直堆叠,结果保存在数组 C 中。

# 垂直堆叠 A 和 B
C = np.vstack((A, B))
print("Array C (堆叠 A 和 B):")
print(C)

运行结果如下:

Array C (堆叠 A 和 B):
[[  3   4   5   6]
 [  7   8   9  10]
 [ 11  12  13  14]
 [ 15  16  17  18]
 [  9  16  25  36]
 [ 49  64  81 100]
 [121 144 169 196]
 [225 256 289 324]]

步骤 5: 计算 C 乘以 A 的乘积
使用 @ 运算符计算 C 和 A 的矩阵乘积。

# 计算 C 乘以 A
product = C @ A
print("C 乘以 A 的乘积:")
print(product)

运行结果如下:

C 乘以 A 的乘积:
[[  182   200   218   236]
 [  326   360   394   428]
 [  470   520   570   620]
 [  614   680   746   812]
 [  954  1040  1126  1212]
 [ 2986  3280  3574  3868]
 [ 6170  6800  7430  8060]
 [10506 11600 12694 13788]]

步骤 6: 重构 C 为维度为 4 x 4 x 2 的数组
最后,我们将 C 重构为一个形状为 4 x 4 x 2 的数组。

# 重构 C 为 4x4x2 的数组
reshaped_C = C.reshape(4, 4, 2)
print("重构后的 C:")
print(reshaped_C)

运行结果如下:

重构后的 C:
[[[  3   4]
  [  5   6]
  [  7   8]
  [  9  10]]

 [[ 11  12]
  [ 13  14]
  [ 15  16]
  [ 17  18]]

 [[  9  16]
  [ 25  36]
  [ 49  64]
  [ 81 100]]

 [[121 144]
  [169 196]
  [225 256]
  [289 324]]]

完整代码
以下是上述所有步骤的完整代码示例:

import numpy as np

# 创建数组 A
A = np.arange(3, 19).reshape(4, 4)
print("Array A:")
print(A)

# 输出 A 的最小值、最大值和平均值
min_value = np.min(A)
max_value = np.max(A)
mean_value = np.mean(A)

print(f"最小值: {min_value}")
print(f"最大值: {max_value}")
print(f"平均值: {mean_value}")

# 计算每个元素的平方,保存到 B
B = A ** 2
print("Array B (A的平方):")
print(B)

# 垂直堆叠 A 和 B
C = np.vstack((A, B))
print("Array C (堆叠 A 和 B):")
print(C)

# 计算 C 乘以 A
product = C @ A
print("C 乘以 A 的乘积:")
print(product)

# 重构 C 为 4x4x2 的数组
reshaped_C = C.reshape(4, 4, 2)
print("重构后的 C:")
print(reshaped_C)

结论
通过这个示例,我们展示了如何利用 NumPy 创建数组、进行基本的统计分析、执行矩阵运算和数组重塑。这些功能使得 NumPy 成为科学计算和数据分析中不可或缺的工具。希望这篇文章能帮助您更好地理解和使用 NumPy!

原创不易,欢迎点赞、关注和转发!!!

相关文章
|
10月前
|
Python
NumPy生成数组的方法
NumPy生成数组的方法
88 0
|
9天前
|
Python
使用 NumPy 进行数组操作的示例
使用 NumPy 进行数组操作的示例
22 2
|
3月前
|
存储 Python
NumPy 教程 之 NumPy 创建数组 8
**NumPy创建数组:使用`zeros_like`创建与原数组形状相同的零数组。`zeros_like(a, dtype=None, order='K', subok=True, shape=None)`基于给定数组`a`的形状,生成所有元素为0的新数组。参数可定制数据类型、存储顺序和形状。实例:创建一个3x3的零矩阵。**
40 7
|
3月前
|
Python
NumPy 教程 之 NumPy 创建数组 6
`NumPy`教程中介绍如何用`numpy.ones`创建数组:生成指定形状的全1数组。例如,`np.ones(5)`产生一维浮点数数组,`np.ones([2,2], dtype=int)`则创建二维整数数组。输出: ``` [1. 1. 1. 1. 1.] [[1 1] [1 1]] ``` 形状、数据类型(默认`None`为浮点型)和内存排列顺序(默认'C')可自定义。
29 3
|
3月前
|
Python
NumPy 教程 之 NumPy 创建数组 5
`NumPy`教程:使用`numpy.ones`创建全1数组,形如`numpy.ones(shape, dtype=None, order='C')`,参数`shape`定义数组形状,`dtype`指定数据类型,默认无类型,`order`设定内存布局,默认'C'(行优先)。
29 4
|
3月前
|
存储 Python
NumPy 教程 之 NumPy 创建数组 9
NumPy教程:`numpy.ones_like`创建与给定数组形状相同的全1数组;`numpy.ones`则直接指定形状。区别在于`ones`需提供形状,`ones_like`借用已知数组形状。参数包括数组`a`(形状源),`dtype`(数据类型),`order`(内存顺序),`subok`(返回子类与否),和可选的`shape`。
20 1
|
3月前
|
存储 Python
NumPy 教程 之 NumPy 创建数组 7
`NumPy`创建数组时,可用`zeros_like`创建与给定数组形状相同的零数组,或用`zeros`指定形状创建。`zeros_like(a)`基于已有数组`a`的形状,`zeros(shape)`则按提供的形状。参数包括数据类型(`dtype`)、内存顺序(`order`)和形状(`shape`)。`shape`若不设,则复制`a`的形状。
32 2
|
3月前
|
存储 Python
NumPy 教程 之 NumPy 创建数组 1
**NumPy创建数组教程:** 使用`numpy.empty`快速生成未初始化的数组,形如`numpy.empty(shape, dtype=float, order='C')`,设定数组形状、数据类型和内存排列顺序。
31 4
|
3月前
|
存储 Python
NumPy 教程 之 NumPy 创建数组 2
使用`numpy.empty`创建未初始化的数组,如`np.empty([3,2], dtype=int)`,返回包含随机内存值的`(3,2)`形状数组。`dtype`定义数据类型,默认为`float`,`order`指定内存布局,`'C'`(行优先)或`'F'`(列优先)。实例输出显示未初始化的整数数组元素值是随机的。
33 4
|
3月前
|
Python
NumPy 教程 之 NumPy 数组属性 7
NumPy教程:数组属性聚焦秩(rank)和轴(axis),表示维度数量。`ndarray.flags`揭示内存细节,如C/F_CONTIGUOUS标志指示数据连续性,OWNDATA检查内存所有权,WRITEABLE允许写入,ALIGNED确保硬件对齐,UPDATEIFCOPY涉及副本更新。
35 4