numpy 中轴的一个理解

numpy 中轴的一个理解

首先看看这段代码与输出的结果

import numpy as np 
a = np.array([[3,7,5],[8,4,3],[2,4,9]])
print(a)
print(np.char.center('xwhking',50,'-'))
print(np.amin(a,1))
print(np.char.center('xwhking',50,'-'))

print(np.amin(a,0))
print(np.char.center('xwhking',50,'-'))

print(np.amax(a))
print(np.char.center('xwhking',50,'-'))

print(np.amax(a,axis=0))

result:

[[3 7 5]
 [8 4 3]
 [2 4 9]]
---------------------xwhking----------------------
[3 3 2]
---------------------xwhking----------------------
[2 4 3]
---------------------xwhking----------------------
9
---------------------xwhking----------------------
[8 7 9]

先分析一下结果,当用轴去求numpy数据的最小值的时候,当轴 = 1 的时候,很自然我们就能想到去到每行里面去求最小值然后返回一个数组,但是当轴 = 0 的时候,却不知道结果是如何来的了。

然后对轴的概念进行一个简单的了解
在NumPy中,“轴”(axis)的概念是指数组的维度。当你创建一个多维数组时,每个维度都有一个轴,轴的数量等于数组的维度数。

考虑一个二维数组(也可以称为矩阵),比如:

import numpy as np

arr = np.array([[1, 2, 3],
                [4, 5, 6]])

这个数组有两个维度,第一个维度包含两个元素(即行),第二个维度包含三个元素(即列)。在NumPy中,第一个维度(行)被称为轴0,第二个维度(列)被称为轴1。

你可以通过指定轴来对数组进行操作,例如计算沿某个轴的和、平均值或者执行其他操作。例如,如果要计算每列的和,你可以使用np.sum()函数,并指定axis参数为1:

column_sum = np.sum(arr, axis=1)

这将返回一个包含每列和的一维数组。

理解轴的概念对于在NumPy中进行数组操作非常重要,因为它们允许你沿特定的维度进行计算,使得你能够灵活地操作多维数组。

根据上面概念的理解,现在我们来分析一下当轴 = 0 时的结果

首先我们的 a ndarray是这样的

[[3 7 5]
 [8 4 3]
 [2 4 9]]

轴为 0 说明只比较第一层的内容求最小值,我们可以这样来看

把上面的数据进行一个变形理解

[
a, # = [3,7,5]
b, # = [8,4,3]
c  # = [2,4,9]
]

现在把他们看成一个元素了就好理解了,但是还有一个问题,他们类型是数组怎么去求最小值呢

这里我的一个理解就是 numpy 的一个广播机制,因为都是一个 ndarray 那么在对应位置上求最小值不就好了。

通过结果来看这样的理解是正确的。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xwhking

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值