gpt4 book ai didi

python - pandas 数据结构中的大小不变性

转载 作者:行者123 更新时间:2023-11-30 21:59:26 25 4
gpt4 key购买 nike

在浏览 pandas 0.24.1 版本文档时 here ,我看到了这个说法。“所有 pandas 数据结构都是值可变的(它们包含的值可以更改),但大小并不总是可变的。Series 的长度无法更改,但例如,可以将列插入到 DataFrame 中。”

import pandas as pd
test_s = pd.Series([1,2,3])
id(test_s) # output: 140485359734400 (will vary)
len(test_s) # output: 3
test_s[3] = 37
id(test_s) # output: 140485359734400
len(test_s) # output: 4

根据我的推断,size immutable 的含义是不允许添加和删除元素之类的操作,但事实显然并非如此。甚至对象的身份也保持不变,排除了创建同名新对象的可能性。那么,大小不变性实际上意味着什么?

最佳答案

允许添加和删除,但这并不一定意味着该系列是可变的。

Series/DataFrames 在内部由 NumPy 数组表示,这些数组是不可变的(固定大小),以允许更紧凑的内存表示和更好的性能。

当您分配给系列时,您实际上是在调用 Series.__setitem__ (然后委托(delegate)给NDFrame.__loc__)创建一个新数组。然后这个新数组被分配回同一个系列(当然,作为最终用户,你看不到这一点),给你一种可变性的错觉。

关于python - pandas 数据结构中的大小不变性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54587158/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com