网络门户网站,文案策划的网站,西安建设工程交易中心,ppt免费1 数组的形状变换
NumPy 提供了多种方法来改变数组的形状。这些方法不会改变数组的内容#xff0c;而是重新组织数据的排列方式。
1.1 reshape() 函数
reshape() 是最常用的形状变换函数#xff0c;它可以改变数组的形状#xff0c;前提是变换后的总元素数量与原数组一致…1 数组的形状变换
NumPy 提供了多种方法来改变数组的形状。这些方法不会改变数组的内容而是重新组织数据的排列方式。
1.1 reshape() 函数
reshape() 是最常用的形状变换函数它可以改变数组的形状前提是变换后的总元素数量与原数组一致。
import numpy as np# 创建一个一维数组
arr np.arange(12)# 将一维数组变换为 3x4 的二维数组
reshaped_arr arr.reshape(3, 4)print(原数组, arr)
print(变换后的数组\n, reshaped_arr)注意: 如果变换后的维度不能满足元素总数要求reshape() 会抛出错误。 1.2 ravel() 函数
ravel() 可以将多维数组展平为一维数组返回的是原数组的视图修改展平后的数组也会影响原数组。
# 展平二维数组
flattened_arr reshaped_arr.ravel()
print(展平后的数组, flattened_arr)1.3 transpose() 函数
transpose() 用于对多维数组进行转置操作交换其维度。对于二维数组转置会将行和列互换。
# 对二维数组进行转置
transposed_arr reshaped_arr.transpose()
print(转置后的数组\n, transposed_arr)1.4 resize() 函数
resize() 和 reshape() 类似但不同的是resize() 会直接修改原数组并且在调整数组大小时会自动填充或截取数据。
# 使用 resize 改变数组大小
reshaped_arr.resize(2, 6)
print(使用 resize 改变后的数组\n, reshaped_arr)2 数组的合并与分割
NumPy 提供了方便的数组合并与分割操作可以灵活处理数据的拼接与拆分。
2.1 数组的合并
水平合并hstack 和 垂直合并vstack 是最常见的数组合并操作用于将多个数组沿着不同轴合并。
# 创建两个数组
arr1 np.array([[1, 2], [3, 4]])
arr2 np.array([[5, 6], [7, 8]])# 水平合并
hstack_arr np.hstack((arr1, arr2))
print(水平合并后的数组\n, hstack_arr)# 垂直合并
vstack_arr np.vstack((arr1, arr2))
print(垂直合并后的数组\n, vstack_arr)2.2 数组的分割
NumPy 提供了 split() 函数可以将数组按照指定的规则进行分割。
# 创建一个数组
arr np.arange(16).reshape(4, 4)# 按行分割为两个数组
split_arr np.split(arr, 2, axis0)
print(按行分割的数组\n, split_arr)# 按列分割为两个数组
split_arr_col np.split(arr, 2, axis1)
print(按列分割的数组\n, split_arr_col)3 数组的排序与搜索
排序和搜索操作在数据分析中非常常用。NumPy 提供了多种方法来对数组进行排序、筛选和搜索。
3.1 数组排序
sort() 函数可以对数组进行排序支持对一维数组、二维数组进行排序并且可以指定沿哪个轴进行排序。
# 创建一个随机数组
arr np.random.randint(1, 100, size(4, 4))# 对数组进行排序默认沿最后一个轴
sorted_arr np.sort(arr)print(原数组\n, arr)
print(排序后的数组\n, sorted_arr)可以使用 axis 参数指定沿哪个维度进行排序
# 沿着行排序
sorted_arr_row np.sort(arr, axis1)
print(按行排序后的数组\n, sorted_arr_row)# 沿着列排序
sorted_arr_col np.sort(arr, axis0)
print(按列排序后的数组\n, sorted_arr_col)3.2 数组的搜索
argmax() 和 argmin() 函数用于查找数组中最大值或最小值的索引where() 函数则可以用于根据条件查找满足条件的元素。
# 查找数组中最大值和最小值的位置
max_index np.argmax(arr)
min_index np.argmin(arr)print(最大值的位置, max_index)
print(最小值的位置, min_index)# 使用 where 查找数组中大于 50 的元素
condition np.where(arr 50)
print(数组中大于 50 的元素索引, condition)3.3 argsort() 函数
argsort() 返回的是排序后的索引值而不是排序后的数组本身。这在需要保留原数组顺序的同时对索引进行操作时非常有用。
# 创建一个随机数组
arr np.array([42, 12, 19, 33])# 使用 argsort 获取排序后的索引
sorted_index np.argsort(arr)
print(排序后的索引, sorted_index)# 使用排序后的索引访问原数组
sorted_arr arr[sorted_index]
print(按索引排序后的数组, sorted_arr)4 数组的去重与重复
NumPy 提供了去重和生成重复数据的功能这在数据预处理和特征工程中非常常见。
1 数组去重
unique() 函数用于对数组进行去重返回的是去重后的数组。
# 创建一个包含重复元素的数组
arr np.array([1, 2, 2, 3, 4, 4, 5])# 使用 unique 函数去重
unique_arr np.unique(arr)
print(去重后的数组, unique_arr)2 数组的重复
tile() 和 repeat() 函数可以用于生成重复数据。
# 使用 repeat 函数重复每个元素 2 次
repeat_arr np.repeat(arr, 2)
print(重复后的数组, repeat_arr)# 使用 tile 函数将整个数组重复 2 次
tile_arr np.tile(arr, 2)
print(数组重复后的结果, tile_arr)