网站开发属于哪个部门,简单的网页代码,重庆装修公司哪家好,推广比较好的网站有哪些目录 1. 使用 reshape 改变形状
2. 使用 resize 改变大小和形状
3. 使用 ravel 或 flatten 展平数组
4. 使用 -1 推断尺寸
5. 使用 newaxis 增加维度
6. 使用 squeeze 移除单维度条目 1. 使用 reshape 改变形状
对于任何 NumPy 数组#xff0c;你可以使用 reshape 方法来…目录 1. 使用 reshape 改变形状
2. 使用 resize 改变大小和形状
3. 使用 ravel 或 flatten 展平数组
4. 使用 -1 推断尺寸
5. 使用 newaxis 增加维度
6. 使用 squeeze 移除单维度条目 1. 使用 reshape 改变形状
对于任何 NumPy 数组你可以使用 reshape 方法来改变其形状而不改变数据本身。
import numpy as np # 创建一个一维数组
arr np.arange(6)
print(Original array:, arr) # 使用 reshape 改变数组形状
reshaped_arr arr.reshape((2, 3))
print(Reshaped array:\n, reshaped_arr)
上述代码将一个包含六个元素的一维数组转换成了一个 2x3 的二维数组
Original array: [0 1 2 3 4 5]
Reshaped array:[[0 1 2][3 4 5]]
2. 使用 resize 改变大小和形状
resize 方法类似于 reshape但它可以改变数组的大小。如果新大小大于原始大小resize 会重复数组中的数据以填充新数组。
# 创建一个一维数组
arr np.array([1, 2, 3]) # 使用 resize 改变大小和形状
np.resize(arr, (2, 3))
这将创建一个新的 2x3 数组其中原始数组的元素被复制以填充新数组。
3. 使用 ravel 或 flatten 展平数组
ravel 和 flatten 方法将多维数组转换为一维数组。flatten 总是返回一个新的数组而 ravel 返回一个数组视图如果可能的话。
# 创建一个二维数组
arr np.array([[1, 2, 3], [4, 5, 6]]) # 使用 ravel 展平数组
flat_arr arr.ravel()
print(Flattened array with ravel:, flat_arr) # 使用 flatten 展平数组
flat_arr2 arr.flatten()
print(Flattened array with flatten:, flat_arr2)
结果
Flattened array with ravel: [1 2 3 4 5 6]
Flattened array with flatten: [1 2 3 4 5 6] 4. 使用 -1 推断尺寸
在重塑数组时你可以在一个维度上使用 -1让 NumPy 自动计算这个维度的大小。
# 创建一个一维数组
arr np.arange(12) # 使用 reshape 时在一个维度上使用 -1
reshaped_arr arr.reshape((3, -1))
print(Reshaped array with -1:\n, reshaped_arr)
上述代码会创建一个 3x4 的二维数组因为 -1 会被解释为 4 来匹配原始数组的总大小。结果
Reshaped array with -1:[[ 0 1 2 3][ 4 5 6 7][ 8 9 10 11]]
5. 使用 newaxis 增加维度
使用 np.newaxis 可以在数组中增加一个新的轴也就是增加一个维度。
# 创建一个一维数组
arr np.array([1, 2, 3]) # 使用 newaxis 增加一个新的维度
column_arr arr[:, np.newaxis]
print(Column array with newaxis:\n, column_arr) # 或者将其变为行向量
row_arr arr[np.newaxis, :]
print(Row array with newaxis:\n, row_arr)
这种技术常用于将一维数组转换为列向量或行向量以符合某些算法的输入要求。结果
Column array with newaxis:[[1][2][3]]
Row array with newaxis:[[1 2 3]]
6. 使用 squeeze 移除单维度条目
squeeze 方法用于从数组的形状中去除单维度的条目即那些大小为 1 的维度。
# 创建一个具有单一维度的数组
arr np.array([[[1], [2], [3]]])
print(Original array shape:, arr.shape)
# 使用 squeeze 移除单维度条目
squeezed_arr arr.squeeze()
print(Squeezed array shape:, squeezed_arr.shape)
print(Squeezed array:, squeezed_arr)
在上述代码中我们将一个 1x3x1 的三维数组压缩成了一个 3x1 的二维数组。结果
Original array shape: (1, 3, 1)
Squeezed array shape: (3,)
Squeezed array: [1 2 3]