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

值错误:合并时不允许使用负尺寸

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

值错误:合并时不允许使用负尺寸

在32位计算机上,默认的NumPy整数dtype为

int32
。在64位计算机上,默认的NumPy整数dtype为
int64

int32
int64
可以代表的最大整数是:

In [88]: np.iinfo('int32').maxOut[88]: 2147483647In [87]: np.iinfo('int64').maxOut[87]: 9223372036854775807

因此,由创建的整数索引

pd.merge
2147483647 = 2**31-1
在32位计算机上最多支持
9223372036854775807 =2**63-1
行,在64位计算机上最多支持行。

从理论上讲,通过联接合并的两个290000行Dataframe

outer
可能具有多达
290000**2 = 84100000000
行。以来

In [89]: 290000**2 > np.iinfo('int32').maxOut[89]: True

32位计算机可能无法生成足以索引合并结果的整数索引。

尽管理论上64位计算机可以生成足以容纳结果的整数索引,但您可能没有足够的内存来构建一个840亿行的Dataframe。

现在,当然,合并的Dataframe可能少于840亿行(确切的行数取决于中

df1['POINTID']
和中
出现多少个重复值
df2['POINTID']
),但是以上的信封计算表明,您看到的行为与具有很多重复。


PS。如果存在算术溢出,则在NumPy数组中添加或乘以正整数时,您可以得到负值:

In [92]: np.int32(290000)*np.int32(290000)Out[92]: -1799345920

我的猜测是这是导致异常的原因:

ValueError: negative dimensions are not allowed


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

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

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