栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

str和对象类型之间的熊猫区别

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

str和对象类型之间的熊猫区别

Numpy的字符串dtypes不是python字符串。

因此,

pandas
故意使用本机python字符串,这需要对象dtype。

首先,让我演示一下numpy的字符串与众不同的含义:

In [1]: import numpy as npIn [2]: x = np.array(['Testing', 'a', 'string'], dtype='|S7')In [3]: y = np.array(['Testing', 'a', 'string'], dtype=object)

现在,“ x”是

numpy
字符串dtype(固定宽度,类似c的字符串),并且
y
是本机python字符串的数组。

如果我们尝试超过7个字符,我们会立即发现差异。字符串dtype版本将被截断:

In [4]: x[1] = 'a really really really long'In [5]: xOut[5]:array(['Testing', 'a reall', 'string'],      dtype='|S7')

虽然对象dtype版本可以是任意长度:

In [6]: y[1] = 'a really really really long'In [7]: yOut[7]: array(['Testing', 'a really really really long', 'string'], dtype=object)

接下来,

|S
尽管也有unipre定长字符串dtype,但dtype字符串无法正确保存unipre。现在,我将跳过一个示例。

最后,numpy的字符串实际上是可变的,而Python字符串则不是。例如:

In [8]: z = x.view(np.uint8)In [9]: z += 1In [10]: xOut[10]:array(['Uftujoh', 'b!sfbmm', 'tusjohx01'],      dtype='|S7')

由于所有这些原因,

pandas
选择不再允许类似C的固定长度字符串作为数据类型。如您所知,尝试将python字符串强制转换为numpy固定字符串将无法在中运行
pandas
。相反,它始终使用本机python字符串,对于大多数用户而言,它们的行为更为直观。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/638731.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号