Python pd.Series.prod()函数
这可能是最基本的,但我还是搞不懂 我正在阅读pd.系列的文档并做一些简单的练习 我的代码如下:Python pd.Series.prod()函数,python,pandas,series,Python,Pandas,Series,这可能是最基本的,但我还是搞不懂 我正在阅读pd.系列的文档并做一些简单的练习 我的代码如下: import pandas as pd import numpy as np pd.Series([2, 4, 6]).prod() Out[7]: 48 a = pd.Series(np.arange(1, 100, 3)) a Out[9]: 0 1 1 4 2 7 3 10 4 13 5 16 6 19 7 22
import pandas as pd
import numpy as np
pd.Series([2, 4, 6]).prod()
Out[7]: 48
a = pd.Series(np.arange(1, 100, 3))
a
Out[9]:
0 1
1 4
2 7
3 10
4 13
5 16
6 19
7 22
8 25
9 28
10 31
11 34
12 37
13 40
14 43
15 46
16 49
17 52
18 55
19 58
20 61
21 64
22 67
23 70
24 73
25 76
26 79
27 82
28 85
29 88
30 91
31 94
32 97
dtype: int32
a.prod()
Out[10]: 0
a = pd.Series(np.arange(1, 100, 2))
a.prod()
Out[15]: -373459037
type(a)
Out[18]: pandas.core.series.Series
我的问题是,在我看来,为什么会有这种不稳定的行为?为什么a.prod()第一次计算为0,然后计算为负整数
非常感谢您的建议。这是
int32
溢出:
In [340]: a = pd.Series(np.arange(1, 100, 3)).astype(np.int64)
# NOTE: ---------------> ^^^^^^^^^^^^^^^^^
In [341]: a.prod()
Out[341]: 8624389262030143488
我们可以直接使用numpy的
np.prod
和指定的dtype
来克服int溢出:
np.prod(a.values,dtype=np.int64)
Out[938]: 5196472710489536419
哦,天哪,我迟到了吗?他们几天前在我的班上教了同样的东西:)@Bharath,哦!真有趣!你在哪里教什么?如果你不想公开,我会完全理解的…@Bharath,我相信你有足够的知识来教人!;-)@Bharath如果您知道,
标量和软内存如何存储数字,您会发现这很有趣。:-)