赞
踩
用于在不同维度上复制数组。具体来说,np.tile(A, reps)会将数组A沿各个维度复制指定的次数,形成一个新的数组。
参数解释:
import numpy as np # 创建一个数组 arr = np.array([1, 2, 3]) # 将数组沿着第一个轴复制3次 result1 = np.tile(arr, 3) print(result1) # 输出结果为: [1 2 3 1 2 3 1 2 3] A = np.array([[1, 2], [3, 4]]) result2 = np.tile(A, (2, 3)) print(result2) # 输出结果为: array([[1, 2, 1, 2, 1, 2], [3, 4, 3, 4, 3, 4], [1, 2, 1, 2, 1, 2], [3, 4, 3, 4, 3, 4]])
一种在NumPy中用于改变数组维度的常见操作
当使用np.newaxis
时,它实际上是一个None
对象的别名,用于增加数组的维度。通过在切片操作中使用np.newaxis
,可以改变数组的维度,从而方便进行矩阵运算。
import numpy as np # 创建一个一维数组 arr = np.array([1, 2, 3, 4]) # 使用np.newaxis增加一个新的轴 new_arr = arr[:, np.newaxis] print(new_arr) print(new_arr.shape) 输出结果: array([[1], [2], [3], [4]]) (4, 1)
用于沿着新的轴堆叠数组序列。具体来说,np.stack
可以将多个数组沿着指定的轴(axis)进行堆叠,生成一个新的数组。
参数说明:
arrays
:要堆叠的数组序列,可以是多个数组组成的列表或元组。axis
:指定沿着哪个轴进行堆叠。默认值为 0,表示沿着新的第一个轴进行堆叠。axis=-1
表示沿着数组的最后一个轴进行堆叠操作。import numpy as np
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
stacked_array = np.stack((arr1, arr2))
print(stacked_array)
输出结果:
[[1 2 3]
[4 5 6]]
用于对数组进行循环移位操作的函数。该函数可以将数组沿指定轴进行循环移位,即将数组的元素按照指定的偏移量进行重新排列。
参数说明:
import numpy as np
# 创建一个一维数组
arr = np.array([1, 2, 3, 4, 5])
# 对数组进行循环右移两位
result = np.roll(arr, 2)
print(result)
# 输出结果为:
[4 5 1 2 3]
用于重复数组中的元素的函数。它可以在指定轴上重复数组中的元素
参数解释:
import numpy as np # 创建一个数组 arr = np.array([1, 2, 3]) # 将数组中的每个元素重复2次 repeated_arr = np.repeat(arr, 2) print(repeated_arr) 输出结果: [1 1 2 2 3 3] # 创建一个二维数组 arr = np.array([[1, 2], [3, 4]]) # 在轴0上重复每行2次 repeated_arr_axis0 = np.repeat(arr, 2, axis=0) print(repeated_arr_axis0) 输出结果: [[1 2] [1 2] [3 4] [3 4]] # 创建一个二维数组 arr = np.array([[1, 2], [3, 4]]) # 在轴1上重复每列3次 repeated_arr_axis1 = np.repeat(arr, 3, axis=1) print(repeated_arr_axis1) 输出结果: [[1 1 1 2 2 2] [3 3 3 4 4 4]]
NumPy中用于改变数组形状的函数。它可以将数组重新排列为指定形状,但要确保新形状与原始数组包含的元素数量一致。
参数解释:
import numpy as np # 创建一个一维数组 arr = np.array([1, 2, 3, 4, 5, 6]) # 将一维数组reshape为二维数组 reshaped_arr = arr.reshape(2, 3) print(reshaped_arr) 输出结果: [[1 2 3] [4 5 6]] arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]) #-1表示第二维的大小则根据总元素数量和前两维的大小自动计算得出。 reshaped_array = arr.reshape(6, -1, 2) 输出结果: [[[ 1 2] [ 3 4]] [[ 5 6] [ 7 8]] [[ 9 10] [11 12]]]
用于将多维数组展平为一维数组。具体来说,ravel()
函数会返回一个包含原始数组所有元素的一维数组,元素的顺序是按照原始数组在内存中的顺序来展开的。
import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]]) raveled_arr = arr.ravel() print("原始数组:") print(arr) print("\n展平后的一维数组:") print(raveled_arr) 原始数组: [[1 2 3] [4 5 6]] 展平后的一维数组: [1 2 3 4 5 6]
import numpy as np # 创建一个二维数组 arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) =# 计算整个数组的均值,并保持维度 mean_all = np.mean(arr, keepdims=True) print("整个数组的均值(保持维度):") print(mean_all) print("维度:", mean_all.shape) # 沿着列方向计算均值,并保持维度 mean_col = np.mean(arr, axis=0, keepdims=True) print("每列的均值(保持维度):") print(mean_col) print("维度:", mean_col.shape) # 沿着行方向计算均值,并保持维度 mean_row = np.mean(arr, axis=1, keepdims=True) print("每行的均值(保持维度):") print(mean_row) print("维度:", mean_row.shape) 整个数组的均值(保持维度): [[5.]] 维度: (1, 1) 每列的均值(保持维度): [[4. 5. 6.]] 维度: (1, 3) 每行的均值(保持维度): [[2.] [5.] [8.]] 维度: (3, 1)
参数说明:
import numpy as np # 创建一个数组 arr = np.array([1, 2, 3, 4, 5]) # 使用np.where()函数找出数组中大于2的元素的索引 indices = np.where(arr > 2) print("大于2的元素的索引:", indices) # 使用np.where()函数将数组中大于2的元素替换为0,小于等于2的元素替换为1 new_arr = np.where(arr > 2, 0, 1) print("替换后的数组:", new_arr) 输出结果: 大于2的元素的索引: (array([2, 3, 4], dtype=int64),) 替换后的数组: [1 1 0 0 0]
np.maximum()
函数会返回一个新的数组,其中每个位置的元素是两个输入数组对应位置元素的最大值。
参数说明:
array1
:第一个输入数组。array2
:第二个输入数组。下面是一个示例,说明如何使用np.maximum()
函数:
import numpy as np
# 创建两个数组
arr1 = np.array([1, 2, 3, 4, 5])
arr2 = np.array([3, 2, 1, 5, 4])
# 使用np.maximum()函数逐元素取最大值
result = np.maximum(arr1, arr2)
print("逐元素最大值:", result)
输出结果:
逐元素最大值: [3 2 3 5 5]
np.all()
函数会返回一个布尔值,如果数组中的所有元素都满足条件,则返回True
,否则返回False
。
参数说明:
array
:输入的数组。axis
:指定沿着哪个轴进行操作,如果不指定,则会将整个数组视为一个一维数组。下面是一个示例,说明如何使用np.all()
函数:
import numpy as np # 创建一个数组 **自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。** **深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!** **因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**       **既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!** **由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新** **如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python)** convert/252731a671c1fb70aad5355a2c5eeff0.png)   **既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!** **由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新** **如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python)** <img src="https://img-community.csdnimg.cn/images/fd6ebf0d450a4dbea7428752dc7ffd34.jpg" alt="img" style="zoom:50%;" />
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。