[Python] numpy - 如何对数组进行降维或者升维

什么是数组升维?

数组升维是指将原本低维数组转换为更高维的数组的操作。在编程中,数组是一种存储多个相同类型数据的连续内存空间。升维操作可以通过添加额外的维度来增加数组的维数。

举个例子,将一个一维数组升维为二维数组可以使用reshape函数或者使用嵌套列表的方式表示。假设有一个一维数组[1, 2, 3, 4, 5],升维为二维数组可以表示为[[1, 2, 3, 4, 5]]。

升维的目的可以是为了更好地符合计算需求,例如在机器学习中,多维数组往往可以方便地表示多个样本的特征向量。

什么是数组降维?

数组降维是指将原本高维数组转换为更低维的数组的操作。在编程中,数组是一种存储多个相同类型数据的连续内存空间。降维操作可以通过减少数组的维数来实现。

举个例子,将一个二维数组降维为一维数组可以使用flatten函数或者使用迭代的方式获取每个元素。假设有一个二维数组[[1, 2, 3], [4, 5, 6]],降维为一维数组可以表示为[1, 2, 3, 4, 5, 6]。

降维的目的可以是为了简化数据结构或者减少维度对数据处理的复杂性。在数据分析和机器学习中,降维也可以用来减少特征维度,提高算法的效率和准确性。

Numpy中如何进行数组升维?

在NumPy中,可以使用多种方法进行数组的升维操作。下面是一些常用的方法:

reshape函数

通过改变数组的形状来实现升维操作。可以指定新的维度大小,保证原始数组的元素总数与新数组的元素总数一致。例如,将一个一维数组升维为二维数组可以使用reshape函数。

import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
print('arr:', arr)
print('arr.shape:', arr.shape)
new_arr = arr.reshape((2, 3))
print('new_arr:', new_arr)
print('new_arr.shape:', new_arr.shape)

newaxis关键字

可以在指定的位置插入一个新的维度。可以通过使用None或者np.newaxis来实现。例如,将一个一维数组升维为二维数组可以使用newaxis关键字。

import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
print('arr:', arr)
print('arr.shape:', arr.shape)
new_arr = arr[np.newaxis, :]
print('new_arr:', new_arr)
print('new_arr.shape:', new_arr.shape)

expand_dims函数

在指定的位置插入一个新的维度。可以通过指定axis参数来确定插入的位置。例如,将一个一维数组升维为二维数组可以使用expand_dims函数。

import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
print('arr:', arr)
print('arr.shape:', arr.shape)
new_arr = np.expand_dims(arr, axis=0)
print('new_arr:', new_arr)
print('new_arr.shape:', new_arr.shape)

new_arr = np.expand_dims(arr, axis=1)
print('new_arr:', new_arr)
print('new_arr.shape:', new_arr.shape)

这些方法可以根据需要选择合适的方式对数组进行升维操作。

Numpy中如何进行数组降维?

在NumPy中,可以使用多种方法进行数组的降维操作。下面是一些常用的方法:

flatten函数

将多维数组降为一维数组。该函数会将数组展平,并返回一个新的一维数组。

import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
print('arr:', arr)
print('arr.shape:', arr.shape)
new_arr = arr.flatten()
print('new_arr:', new_arr)
print('new_arr.shape:', new_arr.shape)

ravel函数

将多维数组降为一维数组。该函数与flatten函数功能类似,但是返回的是一个视图(view)而不是新的数组。

import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
print('arr:', arr)
print('arr.shape:', arr.shape)
new_arr = arr.ravel()
print('new_arr:', new_arr)
print('new_arr.shape:', new_arr.shape)

squeeze函数

去掉数组中维度为1的维度,将其降维。如果数组中有多个维度为1的维度,可以通过指定axis参数来指定要去除的维度。

import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
print('arr:', arr)
print('arr.shape:', arr.shape)
new_arr = np.squeeze(arr)
print('new_arr:', new_arr)
print('new_arr.shape:', new_arr.shape)

这些方法可以根据需要选择合适的方式对数组进行降维操作。

你可能感兴趣的:(python,python,numpy,数组降维,数组升维)