欢迎访问宙启技术站
智能推送

灵活运用numpy中的newaxis()函数进行数组操作

发布时间:2023-12-24 10:43:57

在numpy库中,newaxis()函数用于增加数组的维度。它可以在现有数组的任何位置插入一个新的维度,从而改变数组的形状和维度数。

newaxis()函数的使用方式为array[newaxis, :],其中array是要进行操作的数组,[:]表示在这个位置插入新的维度。

下面是一些使用newaxis()函数的示例:

1. 改变一维数组的形状:

import numpy as np

a = np.array([1, 2, 3])
print(a.shape)  # 输出 (3,)

# 在      个维度上插入新的维度
b = a[np.newaxis, :]
print(b.shape)  # 输出 (1, 3)

# 在最后一个维度上插入新的维度
c = a[:, np.newaxis]
print(c.shape)  # 输出 (3, 1)

在这个例子中,通过插入新的维度,将原始一维数组变成了二维数组,一个是行向量,一个是列向量。

2. 改变二维数组的形状:

import numpy as np

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

# 在      个维度上插入新的维度
b = a[np.newaxis, :]
print(b.shape)  # 输出 (1, 2, 3)

# 在最后一个维度上插入新的维度
c = a[:, :, np.newaxis]
print(c.shape)  # 输出 (2, 3, 1)

在这个例子中,通过插入新的维度,将原始二维数组变成了三维数组,一个是深度为1的二维数组,一个是深度为1的一维数组。

3. 扩展数组的维度:

import numpy as np

a = np.array([1, 2, 3])
print(a.shape)  # 输出 (3,)

# 在      个维度上插入新的维度
b = np.expand_dims(a, axis=0)
print(b.shape)  # 输出 (1, 3)

# 在最后一个维度上插入新的维度
c = np.expand_dims(a, axis=1)
print(c.shape)  # 输出 (3, 1)

在这个例子中,使用np.expand_dims()函数来扩展数组的维度,它的效果和使用newaxis()函数一样。

总结:

使用numpy中的newaxis()函数可以很方便地改变数组的形状和维度数。通过插入新的维度,我们可以实现数组的扩展、转置、转换等操作。灵活运用newaxis()函数可以更好地处理中高维度数组的操作需求,并且简化了代码的编写。