前几天使用sklearn拟合数据,发现曲线特别离谱,找了很久的原因,最后发现是因为我在代码中对特征进行了特征之间的相乘操作,来增加特征的维度,但是两个正数相乘之后,变成了负数:

下图中 xi 为所有数据的第一个特征, xj 为第二个特征, xij 为两个特征相乘之后的结果

在经过下面的代码测试后,发现原因是数据太大,直接相乘不会出错,但是在pandas中进行相乘后结果就是负值。

if __name__ == '__main__':a = 10000000000b = 70000000000print("a:{}, b:{}".format(a, b))print("a与b直接相乘:\n", a*b)pda = pd.DataFrame(np.array([a]))pdb = pd.DataFrame(np.array([b]))print("通过pandas相乘:")print(pda * pdb)
a:10000000000, b:70000000000
a与b直接相乘:
700000000000000000000
通过pandas相乘:0
0 -976274800962961408

造成结果为负数的原因是,原始的数据太大,相乘后的结果超过pandas所能表达的整数的范围,导致溢出,这一现象在numpy中也存在。

一般整数的组织类型为: int8、int16、int32、int64等,如果相乘的两个数是因为pandas的整数类型为int32导致的溢出,而相乘后结果可以用int64类型的表示范围内,则将pandas的数据类型从int32改为int64即可:

pda = pd.DataFrame(np.array([a]), dtype='int64')
pdb = pd.DataFrame(np.array([b]), dtype='int64')
res = pda * pdb

如果相乘的两个数字实在太大,相乘后的结果超过了int64所能表示的范围,我们可以采取归一化将数据归一化至 (-1, 1)(0, 1),归一化后的数据在相乘或平方时的结果就会变得正常起来。

【Pandas】解决在pandas中的两个正数相乘结果为负值相关推荐

  1. java输出两个整数的积_如何检查Java中的两个数字相乘是否会导致溢出?

    如何检查Java中的两个数字相乘是否会导致溢出? 我想处理两个数字相乘导致溢出的特殊情况. 代码看起来像这样: int a = 20; long b = 30; // if a or b are bi ...

  2. 两个正数相乘为什么结果是负数

    前言 说来实在惭愧,用spark处理hive表中的数据时,出现了两个正数相乘最后结果显示为负数后我的第一反应竟然有点懵逼,充分说明了自己在使用数据时,对Hive表中的字段类型没有进行充分的了解,当时, ...

  3. 两个正数相乘或相加,为什么结果是负数。/Java基本数据类型介绍

    两个正数相乘或相加,为什么结果是负数. 首先 1.Java基本数据类型 分为四大类,共八小类 整数型 :byte.short.int.long 分别占 1. 2. 4. 8 个字节 浮点型: floa ...

  4. Computer:成功解决在WPS中合并论文中两个文档(比如将另一个封皮的文档合并在当前文档当中)

    Computer:成功解决在WPS中合并两个文档(比如将另一个封皮的文档合并在当前文档当中) 目录 解决问题 解决方法 解决问题 经常在写论文的时候,需要这样的一个场景,在WPS中合并两个文档,比如将 ...

  5. pandas中计算两列相乘

    在excel中计算两列相乘是十分容易的,在pandas中也是如此 如下表中的Discoount 和 ListPrice相乘 直接上python代码: # @DATE : 2021-1-2 # @TIM ...

  6. python画图显示中文乱码_解决Python pandas plot输出图形中显示中文乱码问题

    解决方式一: import matplotlib #1. 获取matplotlibrc文件所在路径 matplotlib.matplotlib_fname() #Out[3]: u'd:\\Anaco ...

  7. pandas 中上下两行相减(隔行相减) -- shift函数的使用

    pandas 中上下两行相减(隔行相减) -- shift函数的使用 最近使用pandas处理数据,需求是想相邻两行上下相减,查API发现shift函数,很灵活,.你也可以隔任意行相减. p['xx_ ...

  8. python图片显示中文_解决Python pandas plot输出图形中显示中文乱码问题

    解决方式一: import matplotlib #1. 获取matplotlibrc文件所在路径 matplotlib.matplotlib_fname() #Out[3]: u'd:\\Anaco ...

  9. pandas计算含缺失值中列平均值_Pandas进阶修炼120题,给你深度和广度的船新体验...

    来源:早起Python 本文约5800字,建议阅读15分钟. 本文为你介绍Pandas基础.Pandas数据处理.金融数据处理等方面的一些习题. Pandas 是基于 NumPy 的一种数据处理工具, ...

最新文章

  1. Broadcast源码分析
  2. WeChat之小工具:基于C++程序代码设计的查看微信撤销、撤回消息(包括文本、图片、视频等)GUI小工具
  3. JavaScript学习总结(十三)——极简主义法编写JavaScript类
  4. 网易实战分享|Docker文件系统实战
  5. 信道容量受哪三个要素_影响信道容量的主要因素有哪些
  6. jQuery ajax实现
  7. 【面向对象】面向对象程序设计测试题7-对象之间的has-a/many关系测试题
  8. Java基础04 编译与反编译
  9. 【log4net】配置文件
  10. java设计智慧教室_物联网智慧教室设计方案,更便捷的智慧教学体验
  11. ubuntu10.04 NFS服务
  12. kali linux 2020.4 自带浏览器英文改中文
  13. 【QT】自定义Toast消息提示
  14. 如何下载视频号的视频
  15. android win7共享文件夹,手把手教你win7系统怎么共享文件夹
  16. python绘制qq图_Python中作QQ图(quantilequantile Plot)
  17. spark 读取本地文件
  18. C语言BCC异或效验
  19. 阵列分组,不足数,补足
  20. tarjan算法求解强连通分量问题

热门文章

  1. 七月在线笔记之推荐系统
  2. 一条sql执行出现错误Unknown column 'e.sal' in 'on clause'
  3. IDEA快速连接夜神模拟器
  4. 一文了解DCC-GARCH模型
  5. Swift语言中的控制语句和函数
  6. 教育行业如何做好数据治理?
  7. 【2022/02/02】thinkphp源码详细阅读(一)
  8. 读书印记 - 《历代经济变革得失》
  9. 互联网摸鱼日报(2022-10-21)
  10. matlab算法(二维傅立叶级数变换)