Numpy数组的形状相关的操作和概念

Numpy数组的形状相关的操作和概念

参考:numpy array shape

在Python的数据科学和数值计算领域,Numpy库占据了核心地位。Numpy提供了一个强大的数组对象:ndarray,它是一个多维数组,可以用来存储同类型数据。理解数组的形状(shape)是使用Numpy进行数据处理的基础。本文将详细介绍Numpy数组的形状相关的操作和概念,并通过多个示例代码展示如何在实际中操作数组形状。

1. 创建数组

在深入了解数组形状之前,首先需要知道如何创建一个Numpy数组。以下是一些基本的数组创建方法:

示例代码 1:创建一维数组

import numpy as np

# 创建一维数组
array_1d = np.array([1, 2, 3, 4, 5])
print(array_1d)

Output:

Numpy数组的形状相关的操作和概念

示例代码 2:创建二维数组

import numpy as np

# 创建二维数组
array_2d = np.array([[1, 2, 3], [4, 5, 6]])
print(array_2d)

Output:

Numpy数组的形状相关的操作和概念

示例代码 3:使用arange创建数组

import numpy as np

# 使用arange创建数组
array_arange = np.arange(10)  # 创建从0到9的一维数组
print(array_arange)

Output:

Numpy数组的形状相关的操作和概念

2. 查看数组形状

数组的形状可以通过数组的shape属性获得,它返回一个元组,表示各个维度的大小。

示例代码 4:查看一维数组形状

import numpy as np

array_1d = np.array([1, 2, 3, 4, 5])
print(array_1d.shape)  # 输出: (5,)

Output:

Numpy数组的形状相关的操作和概念

示例代码 5:查看二维数组形状

import numpy as np

array_2d = np.array([[1, 2, 3], [4, 5, 6]])
print(array_2d.shape)  # 输出: (2, 3)

Output:

Numpy数组的形状相关的操作和概念

3. 修改数组形状

Numpy提供了多种方式来修改数组的形状,常用的方法包括reshaperesize

示例代码 6:使用reshape修改形状

import numpy as np

array = np.arange(6)
new_array = array.reshape((2, 3))
print(new_array)

Output:

Numpy数组的形状相关的操作和概念

示例代码 7:使用resize修改形状

import numpy as np

array = np.arange(10)
array.resize((2, 5))
print(array)

Output:

Numpy数组的形状相关的操作和概念

4. 数组扁平化

数组扁平化是将多维数组转换为一维数组的过程,常用的方法是flattenravel

示例代码 8:使用flatten扁平化数组

import numpy as np

array_2d = np.array([[1, 2, 3], [4, 5, 6]])
flat_array = array_2d.flatten()
print(flat_array)

Output:

Numpy数组的形状相关的操作和概念

示例代码 9:使用ravel扁平化数组

import numpy as np

array_2d = np.array([[1, 2, 3], [4, 5, 6]])
flat_array = array_2d.ravel()
print(flat_array)

Output:

Numpy数组的形状相关的操作和概念

5. 数组的维度操作

Numpy允许通过expand_dimssqueeze等函数来增加或减少数组的维度。

示例代码 10:使用expand_dims增加维度

import numpy as np

array_1d = np.array([1, 2, 3, 4, 5])
expanded_array = np.expand_dims(array_1d, axis=0)
print(expanded_array)

Output:

Numpy数组的形状相关的操作和概念

示例代码 11:使用squeeze减少维度

import numpy as np

array_with_extra_dim = np.array([[[1, 2, 3, 4, 5]]])
squeezed_array = np.squeeze(array_with_extra_dim)
print(squeezed_array)

Output:

Numpy数组的形状相关的操作和概念

6. 数组转置和轴对换

数组的转置是一种特殊的形状变换,涉及到维度的对换。

示例代码 12:使用transpose进行轴对换

import numpy as np

array_2d = np.array([[1, 2, 3], [4, 5, 6]])
transposed_array = array_2d.transpose()
print(transposed_array)

Output:

Numpy数组的形状相关的操作和概念

示例代码 13:使用T属性进行转置

import numpy as np

array_2d = np.array([[1, 2, 3], [4, 5, 6]])
transposed_array = array_2d.T
print(transposed_array)

Output:

Numpy数组的形状相关的操作和概念

7. 特殊形状操作

Numpy还提供了一些特殊的形状操作,如tilerepeat,这些可以用来复制数组。

示例代码 14:使用tile复制数组

import numpy as np

array_1d = np.array([1, 2, 3])
tiled_array = np.tile(array_1d, (3, 2))
print(tiled_array)

Output:

Numpy数组的形状相关的操作和概念

示例代码 15:使用repeat重复数组元素

import numpy as np

array_1d = np.array([1, 2, 3])
repeated_array = np.repeat(array_1d, 3)
print(repeated_array)

Output:

Numpy数组的形状相关的操作和概念

8. 结论

理解和操作Numpy数组的形状是进行高效数值计算的基础。通过本文的介绍和示例代码,您应该能够掌握如何查看、修改以及操作Numpy数组的形状。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程