numpy中axis=0 与axis=1的区分

本文详细解析了NumPy库中amin和amax函数的使用方法,通过具体实例展示了如何计算数组元素的最小值和最大值,以及如何沿特定轴进行计算。深入理解amin(a,0)和amin(a,1)的区别,帮助读者掌握NumPy数组操作的核心技巧。
import numpy as np
a = np.array([[1,2,3], [4,5,6], [7,8,9]])
print np.amin(a)
print np.amin(a,0)
print np.amin(a,1)
print np.amax(a)
print np.amax(a,0)
print np.amax(a,1)

amin() 用于计算数组中的元素沿指定轴的最小值。
amin(a,0) 是延着 axis=0 轴的最小值,axis=0是把元素看成[1,2,3],[4,5,6],[7,8,9]三个元素,所以最小值是[1,2,3],amin(a,1) 是延着 axis=1 轴的最小值,axis=1 轴是把元素看成了 [1,4,7],[2,5,8], [3,6,9] 三个元素,所以最小值为 [1,4,7]。

NumPy 中,`axis` 参数用于指定操作沿着数组的哪个轴进行。理解 `axis=0` 和 `axis=1` 的区别需要结合数组的维度结构。 ### `axis=0` 的作用 当设置 `axis=0` 时,操作会沿着数组的**第一个维度(行方向)**进行。这意味着 NumPy 会沿着行的方向对列执行操作。例如,在一个二维数组中,`axis=0` 会将每一列的数据作为一个整体进行处理。 以下是一个示例,展示 `axis=0` 的效果: ```python import numpy as np x = np.array([[11, 12, 13, 14, 15], [16, 17, 18, 19, 20], [21, 22, 23, 24, 25], [26, 27, 28, 29, 30], [31, 32, 33, 34, 35]]) y = np.sum(x, axis=0) print(y) # [105 110 115 120 125] ``` 在这个例子中,`np.sum(x, axis=0)` 对每一列的所有元素求和,最终输出一个一维数组,其中每个元素是对应列的总和[^2]。 ### `axis=1` 的作用 当设置 `axis=1` 时,操作会沿着数组的**第二个维度(列方向)**进行。这意味着 NumPy 会沿着列的方向对行执行操作。例如,在一个二维数组中,`axis=1` 会将每一行的数据作为一个整体进行处理。 以下是一个示例,展示 `axis=1` 的效果: ```python y = np.sum(x, axis=1) print(y) # [ 65 90 115 140 165] ``` 在这个例子中,`np.sum(x, axis=1)` 对每一行的所有元素求和,最终输出一个一维数组,其中每个元素是对应行的总和[^2]。 ### 高维数组中的 `axis` 操作 对于更高维度的数组,`axis` 参数的作用方式类似。例如,在一个四维数组中,`axis=3` 表示沿着第四个维度(最内层的轴)进行操作。 以下是一个四维数组的示例: ```python import numpy as np a = np.array([[[[1, 2], [1, 3], [1, 4]], [[1, 7], [1, 6], [1, 5]], [[1, 2], [1, 3], [1, 4]]]]) print(np.sum(a, axis=3)) # Sum along the fourth axis print(np.sum(a, axis=3).shape) # Resulting shape print(np.sum(a, axis=3, keepdims=True)) # Keep the summed axis as dimension of 1 print(np.sum(a, axis=3, keepdims=True).shape) # Resulting shape with keepdims ``` 在这个例子中,`axis=3` 表示沿着最内层的轴(即每个子数组的最后一个维度)进行求和操作。通过 `keepdims=True`,可以保留被操作轴的维度为 1[^1]。 ### 总结 - `axis=0`:沿着行方向操作,对列进行操作。 - `axis=1`:沿着列方向操作,对行进行操作。 - 在更高维数组中,`axis=i` 表示沿着第 `i` 个维度进行操作。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值