axis参数决定NumPy操作沿哪个维度进行并压缩该维度,axis=0表示沿行方向操作、压缩行维度,结果中行数消失;axis=1表示沿列方向操作、压缩列维度,结果中列数消失;高维同理,axis指明被“折叠”的维度,配合keepdims可保留维度,不同函数中axis含义依操作意图而定。

NumPy中的
axis
要真正理解
axis
axis=0
axis=0
axis=1
我个人在刚接触的时候,总是会把
axis=0
m x n
axis=0
n
m
axis=1
m
n
这对于更高维的数组来说就更有意思了。想象一个三维数组,它有深度、行、列三个维度。
axis=0
axis=1
axis=2
立即学习“Python免费学习笔记(深入)”;
axis
np.sum()
np.mean()
np.max()
当我们有一个二维数组
arr = np.array([[1, 2, 3], [4, 5, 6]])
np.sum(arr)
axis
np.sum(arr, axis=0)
[1, 2, 3]
[4, 5, 6]
[1+4, 2+5, 3+6]
[5, 7, 9]
(2, 3)
(3,)
np.sum(arr, axis=1)
[1, 2, 3]
6
[4, 5, 6]
15
[6, 15]
(2, 3)
(2,)
再举个三维的例子,
arr_3d = np.arange(1, 28).reshape(3, 3, 3)
arr_3d.sum(axis=0)
(3, 3)
(3, 3)
arr_3d.sum(axis=1)
(3, 3)
arr_3d.sum(axis=2)
(3, 3)
这里的核心逻辑是,
axis
keepdims=True
import numpy as np
arr_2d = np.array([[1, 2, 3],
[4, 5, 6]])
print("原始数组:\n", arr_2d)
print("axis=0 求和:", np.sum(arr_2d, axis=0)) # 输出: [5 7 9]
print("axis=1 求和:", np.sum(arr_2d, axis=1)) # 输出: [ 6 15]
print("axis=0 求和并保留维度:", np.sum(arr_2d, axis=0, keepdims=True)) # 输出: [[5 7 9]] (形状 (1, 3))我在实际使用中发现,大家对
axis
axis=0
axis=1
常见误区:
axis=0
axis=1
axis=0
axis=1
axis
axis
axis
实用技巧:
shape
(d0, d1, d2, ...)
axis=i
d_i
arr.shape = (3, 4, 5)
np.sum(arr, axis=0)
shape
(4, 5)
np.sum(arr, axis=1)
shape
(3, 5)
np.sum(arr, axis=2)
shape
(3, 4)
axis
shape
keepdims=True
arr = np.array([[1, 2], [3, 4]]) col_sum = np.sum(arr, axis=0, keepdims=True) # [[4, 6]],形状 (1, 2) # 现在 col_sum 可以直接和 arr 进行广播操作,例如 arr / col_sum print(arr / col_sum) # [[0.25 0.333] # [0.75 0.666]]
如果没有
keepdims=True
np.sum(arr, axis=0)
[4, 6]
(2,)
axis
axis=(0, 2)
arr_3d = np.arange(1, 28).reshape(3, 3, 3)
# 对 axis=0 和 axis=2 同时求和
result = np.sum(arr_3d, axis=(0, 2))
print("arr_3d shape:", arr_3d.shape) # (3, 3, 3)
print("sum(axis=(0, 2)) result:", result) # [42 51 60]
print("result shape:", result.shape) # (3,)
# 原始的 (3, 3, 3) 经过 axis=(0, 2) 聚合,只剩下中间的维度 (3,)这在处理复杂数据时,能让你一次性完成多个维度的聚合,非常高效。
虽然
axis
axis
1. 聚合/归约函数 (Reduction Functions):sum()
mean()
max()
min()
std()
argmax()
argmin()
axis
axis
argmax()
argmin()
np.percentile()
np.quantile()
axis
sum()
np.apply_along_axis()
axis
2. 维度操作函数:concatenate()
stack()
split()
swapaxes()
transpose()
axis
np.concatenate(arrays, axis=0)
axis
a = np.array([[1, 2], [3, 4]]) # shape (2, 2) b = np.array([[5, 6], [7, 8]]) # shape (2, 2) np.concatenate((a, b), axis=0) # [[1, 2], # [3, 4], # [5, 6], # [7, 8]] # shape (4, 2) - 沿着 axis=0 连接,axis=1 保持不变
np.stack(arrays, axis=0)
concatenate
stack
axis
a = np.array([1, 2]) # shape (2,) b = np.array([3, 4]) # shape (2,) np.stack((a, b), axis=0) # [[1, 2], # [3, 4]] # shape (2, 2) - 在最前面插入一个新轴 np.stack((a, b), axis=1) # [[1, 3], # [2, 4]] # shape (2, 2) - 在第二个位置插入一个新轴
np.split(ary, indices_or_sections, axis=0)
axis
np.swapaxes(arr, axis1, axis2)
axis1
axis2
np.transpose(arr, axes=None)
axes=None
所以,虽然都叫
axis
以上就是python numpy中的axis是什么意思_numpy中axis轴参数的含义与用法解析的详细内容,更多请关注php中文网其它相关文章!
python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号