请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于dtype

电脑是64位的系统,前面几节课dtype时有的是64位,有的是32位的,像到了这节课这里默认就是32位导致prod出来的结果是32位情况下的运算结果2004189184

正在回答

1回答

说明你使用的是 Windows 系统。


dtype 默认的整型数据,对应的数据类型是 C 语言的 long,而在 Windows 下,long 默认是 32 位的(即使你的 Windows 操作系统是 64 位的)。


关于这个问题,可以参考这个 issue:https://github.com/numpy/numpy/issues/9464


微软在 Windows 下的数据长度说明可以参考这里:https://docs.microsoft.com/en-us/cpp/c-language/storage-of-basic-types?redirectedfrom=MSDN&view=msvc-170


如果你需要顾及跨平台(尤其是Linux/Unix/MacOS 和 Windows 之间的兼容),不建议使用 default 的数据类型,而是显式声明清楚数据类型,比如这个问答里这个同学的写法:https://coding.imooc.com/learn/questiondetail/Dg8m5XZqrAzYWa4B.html


继续加油!:)

0 回复 有任何疑惑可以回复我~
  • 提问者 慕沐9165406 #1
    意思是说后续用到的机器学习的算法用windows系统要尽可能都声明成64位的才能最大程度避免出错是这样吗
    回复 有任何疑惑可以回复我~ 2022-01-24 14:18:43
  • 提问者 慕沐9165406 #2
    非常感谢!
    回复 有任何疑惑可以回复我~ 2022-01-24 16:55:03
  • liuyubobobo 回复 提问者 慕沐9165406 #3
    如果使用的是整数的话,是的。但其实在机器学习中,99% 的计算是浮点运算,所以这一点至少在这个课程的范围里,没有那么重要:)
    回复 有任何疑惑可以回复我~ 2022-01-24 17:11:18
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信