惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

F
Fortinet All Blogs
宝玉的分享
宝玉的分享
酷 壳 – CoolShell
酷 壳 – CoolShell
T
The Exploit Database - CXSecurity.com
Help Net Security
Help Net Security
腾讯CDC
Project Zero
Project Zero
C
CXSECURITY Database RSS Feed - CXSecurity.com
IT之家
IT之家
C
Cyber Attacks, Cyber Crime and Cyber Security
T
Tailwind CSS Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
D
Darknet – Hacking Tools, Hacker News & Cyber Security
L
LINUX DO - 最新话题
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
T
Threatpost
N
News | PayPal Newsroom
C
Cybersecurity and Infrastructure Security Agency CISA
Hacker News - Newest:
Hacker News - Newest: "LLM"
S
SegmentFault 最新的问题
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
P
Proofpoint News Feed
A
Arctic Wolf
B
Blog RSS Feed
Forbes - Security
Forbes - Security
P
Privacy & Cybersecurity Law Blog
Attack and Defense Labs
Attack and Defense Labs
V2EX - 技术
V2EX - 技术
P
Proofpoint News Feed
I
Intezer
Application and Cybersecurity Blog
Application and Cybersecurity Blog
阮一峰的网络日志
阮一峰的网络日志
aimingoo的专栏
aimingoo的专栏
T
Tenable Blog
MyScale Blog
MyScale Blog
U
Unit 42
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
WordPress大学
WordPress大学
W
WeLiveSecurity
D
DataBreaches.Net
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
G
GRAHAM CLULEY
有赞技术团队
有赞技术团队
Martin Fowler
Martin Fowler
罗磊的独立博客
The Last Watchdog
The Last Watchdog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
V
Vulnerabilities – Threatpost
美团技术团队
Microsoft Security Blog
Microsoft Security Blog

晚花行乐

马克卡尼在2026年达沃斯论坛上的讲话(阅读材料) | 晚花行乐 鸡娃如何用力才是恰到好处 | 晚花行乐 读万卷书,行万里路的辩证关系 | 晚花行乐 反对培训机构掐尖招生 | 晚花行乐 小泽和建国会谈最后10分钟全文(阅读材料) | 晚花行乐 来看看 DeepSeek 怎么鸡娃 | 晚花行乐 谈谈基本功 | 晚花行乐 惠普 ProDesk SFF PC 各系列参数对比 | 晚花行乐 解决瘦客户机上安装 Debian 12 启动失败问题 | 晚花行乐 意拾喻言:老外写的文言文 | 晚花行乐 笠翁对韵中的典故(十三元) | 晚花行乐 谈谈中考取消四小门 | 晚花行乐 亚马逊云科技产品免费试用攻略(3) - 对象存储服务 | 晚花行乐 在 Windows 10 LTSC 版本上安装 WSL2 | 晚花行乐 Debian 12 的常用配置项 | 晚花行乐 在 Debian 12 上安装 Nvidia 显卡驱动程序 | 晚花行乐 解决 Debian 12 关机失败问题 | 晚花行乐 解决 VS Code 自动更新版本后卡在连接界面 | 晚花行乐 观看巴黎奥运会有感 | 晚花行乐 在 Windows10 上安装惠普旧打印机驱动程序 | 晚花行乐 欢迎关注公众号:晚花行乐 | 晚花行乐 如何编写拼写检查器 | 晚花行乐 亚马逊云科技产品免费试用攻略(2) - 云服务器 | 晚花行乐 我打算命个名,叫什么什么 Manager | 晚花行乐 上海武康路历史建筑一览 | 晚花行乐 Python 实现简单的数学表达式解析并处理 | 晚花行乐 观看马拉松的感悟 | 晚花行乐 Python 保存 Cookies 到文件并再次读取 | 晚花行乐 如何为 Hugo 静态网站添加评论功能 | 晚花行乐 Linux 共享打印服务 CUPS | 晚花行乐 如何为 Hugo 静态网站添加搜索功能 | 晚花行乐 解决 CSV 文件的第一列不能解析 | 晚花行乐 亚马逊云科技产品免费试用攻略(1) - 注册账户 | 晚花行乐 第二幕 Atma 的闲聊 | 晚花行乐 第二幕野蛮人的语音 | 晚花行乐 古入声和普通话平声对照 | 晚花行乐 第一幕的背景音乐 | 晚花行乐 第二幕亚马逊的语音 | 晚花行乐 第一幕的亚马逊的语音 | 晚花行乐 第一幕的野蛮人的语音 | 晚花行乐 MacOS 的彩蛋:Here's to the crazy ones | 晚花行乐 笠翁对韵的基本知识 | 晚花行乐 笠翁对韵中的典故(十二文) | 晚花行乐 笠翁对韵中的典故(十一真) | 晚花行乐 笠翁对韵中的典故(十灰) | 晚花行乐 杭州景点的楹联 | 晚花行乐 adb keycode 大全 | 晚花行乐 Scikit-learn 学习笔记(0)名词术语 | 晚花行乐 Scikit-learn 学习笔记(3)监督学习的例子 | 晚花行乐 SQLite 文档的学习笔记(1)长期支持计划 | 晚花行乐 SQLite 文档的学习笔记(2)测试方法 | 晚花行乐 笠翁对韵中的典故(九佳) | 晚花行乐 Ansible 如何检查一个程序的版本 | 晚花行乐 Ansible 如何检查一个文件夹是否存在 | 晚花行乐 pip 配置文件详解 | 晚花行乐 Ansible 如何检查一个URL是否正常 | 晚花行乐 Ansible 如何修改 iptables 规则 | 晚花行乐 Ansible 指定 playbook 运行的主机 | 晚花行乐 Ansible 如何清空文件夹 | 晚花行乐 Ansible 如何在本机执行命令 | 晚花行乐 笠翁对韵中的典故(八齐) | 晚花行乐 Python 中 Defaultdict 的理解 | 晚花行乐 《伊索寓言》电子书 | 晚花行乐 菲伯尔钢琴伴奏:第二册 | 晚花行乐 Python 的 Keyword-Only Arguments 理解 | 晚花行乐 Python 的 函数参数处理机制 | 晚花行乐 瓦瑞夫在第一幕的闲聊 | 晚花行乐 瓦瑞夫在第一幕的任务提示 | 晚花行乐 第一幕的女巫语音 | 晚花行乐 《Fluent Python》 读书笔记:文本和字节序列 | 晚花行乐 第一幕的罗格语音 | 晚花行乐 第一幕的圣骑士语音 | 晚花行乐 第一幕的男巫语音 | 晚花行乐 第一幕的旁白 | 晚花行乐 第一幕的恶魔 | 晚花行乐 Python 中 Element Tree 的理解 | 晚花行乐 《Fluent Python》 读书笔记:字典和集合 | 晚花行乐 笠翁对韵中的典故(七虞) | 晚花行乐 笠翁对韵中的典故(五微) | 晚花行乐 笠翁对韵中的典故(六鱼) | 晚花行乐 笠翁对韵中的典故(一东) | 晚花行乐 笠翁对韵中的典故(二冬) | 晚花行乐 笠翁对韵中的典故(三江) | 晚花行乐 笠翁对韵中的典故(四支) | 晚花行乐 姜太公钓鱼 | 晚花行乐 武王建立周朝 | 晚花行乐 大禹治水 | 晚花行乐 尧舜让位 | 晚花行乐 黄帝战蚩尤 | 晚花行乐 上下五千年-精简版 | 晚花行乐 成功修复鼠标按键 | 晚花行乐 横向的Word文档怎么加页眉页脚 | 晚花行乐 商标通用化的故事:商标代替商品名 | 晚花行乐 搜索空文件夹的批处理程序 | 晚花行乐 Sn0wbreeze不能运行? | 晚花行乐 天线的驻波比 | 晚花行乐 天线参数:增益Gain | 晚花行乐 天线参数:方向图Radiation pattern | 晚花行乐 本拉登别墅的Google Earth坐标 | 晚花行乐 宜家帕克斯(PAX)衣柜的拼装过程 | 晚花行乐
Pandas 中 axis 参数的理解(附实例) | 晚花行乐
2024-06-27 · via 晚花行乐

Pandas 一些函数带有 axis 的参数,对刚刚开始使用 Pandas 的新手来说,不好理解。网上有其他文章解释,但是感觉没有讲透。本文试着解释这个 axis 参数的含义。

问题

>>> import pandas as pd
>>>
>>> table = {
...   "A": [1, 2, 3],
...   "B": [4, 5, 6],
...   "C": [7, 8, 9],
... }
>>>
>>> df = pd.DataFrame(table)        # 从 dict 初始化
>>> df.sum(axis=0)                  # 沿 axis = 0 求和
A     6
B    15
C    24
dtype: int64
>>> df.sum(axis=1)                  # 沿 axis = 1 求和
0    12
1    15
2    18
dtype: int64
>>> df.drop(['B'])                  # drop 不指定 axis, 报错
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/.../frame.py", line 5581, in drop
    return super().drop()
  File "/.../generic.py", line 4788, in drop
    obj = obj._drop_axis(labels, axis, level=level, errors=errors)
  File "/.../generic.py", line 4830, in _drop_axis
    new_axis = axis.drop(labels, errors=errors)
  File "/.../base.py", line 7070, in drop
    raise KeyError(f"{labels[mask].tolist()} not found in axis")
KeyError: "['B'] not found in axis"

>>> df.drop(['B'], axis=1)          # drop 需要指定 axis=1
   A  C
0  1  7
1  2  8
2  3  9
>>>

观察上面的 sum()drop() 函数,当 axis=1 时, sum() 得到是按行求和,而 drop() 是按列操作,似乎参数的含义不统一。

下面尝试解释这个现象,我们从最常见的一维数组开始:

1维的情况

对于一维数组:

A = [1, 2, 3, 4, 5]

要想索引数组中的元素(可以理解为1维空间中的点),可以用一个数字作为下标:

A[2]

2维的情况

当一维数组中的某一个元素变成数组后,就扩张出了新的维度:

A = [ 
  [1, 2, 3], 
  [4, 5, 6], 
  [7, 8, 9],
]

要想索引数组最内层的元素(可以理解为2维空间中的点),需要用2个数字作为下标:

A[2][1]

这种表示法类似二维平面的 $(2, 1)$,最前面的 $2$ 称为第1维, 往后面的 $1$ 称为第2维。

数组的索引式中,靠前的 [2] 表示 A 最外层的索引,称为第1维;靠后的 [1] 表示 A 向内一层的索引,称为第2维。

结论:第1维是最外层,第2维是向内一层,以此类推。

上面数组的例子,是从最高维向下扩展维度,下面我们反方向观察如何向上扩展维度。

从一个标量开始

首先是一个标量开始,也就是空间中的点

1

多个点组合在一起,构成一个1维空间,扩展称为向量:

a = [1, 2, 3]

这时用一个坐标就可以指代任何一个点:

a[2]

这里的 $2$ 是第一维,也就是最外层的维度

当多个1维空间组合在一起,构成一个二维空间:

a1 = [1, 2, 3]
a2 = [4, 5, 6]
a3 = [7, 8, 9]
A = [a1, a2, a3]

注意:原来的空间被新的空间包裹起来,那么新扩张出的维度就变成了最外层,也就是第1维。原来的第1维,现在降到了第2维。

Pandas 的数据结构

Pandas 中的 Series 是个一维结构,DataFrame 是一个二维结构。 DataFrame 是 Series 更高维度的容器,

还是用 前面问题一节 中的例子:

>>> import pandas as pd
>>>
>>> table = {
...   "A": [1, 2, 3],
...   "B": [4, 5, 6],
...   "C": [7, 8, 9],
... }

最外层是 column 层,属于第1维,axis=0;内层是 index,坐标作为 Series 的坐标, 属于第2维,axis=1

如何理解 sum() 函数中的 axis 参数

观察下面这个 Dataframe

df.sum(axis=0) 中的 axis 参数指沿着 index 轴求和。“沿着 index 轴” 可以理解为:保留 index 轴,而将 column 维度坍塌到 index 轴。

df.sum(axis=1) 中的 axis 参数指沿着 column 轴求和。“沿着 column 轴” 可以理解为:保留 column 轴,而将 index 维度坍塌到 column 轴。

各位读后有什么想法,请在下方留言吧!如果对本文有疑问或者寻求合作,欢迎 联系邮箱邮箱已到剪贴板

精彩评论