[英]Why does bitwise left shift from numpy give different results on different systems?
我在两个不同的系统上使用 numpy 的按位运算并得到不同/不一致的结果。 经过一番调查,我发现left_shift
导致了问题。 如果我执行以下操作:
xs = [i for i in range(100)]
np.left_shift(xs, xs)
在我得到的第一个系统上:
array([ 0, 2, 8,
24, 64, 160,
384, 896, 2048,
4608, 10240, 22528,
49152, 106496, 229376,
491520, 1048576, 2228224,
4718592, 9961472, 20971520,
44040192, 92274688, 192937984,
402653184, 838860800, 1744830464,
3623878656, 7516192768, 15569256448,
32212254720, 66571993088, 137438953472,
283467841536, 584115552256, 1202590842880,
2473901162496, 5085241278464, 10445360463872,
21440476741632, 43980465111040, 90159953477632,
184717953466368, 378231999954944, 774056185954304,
1583296743997440, 3236962232172544, 6614661952700416,
13510798882111488, 27584547717644288, 56294995342131200,
114841790497947648, 234187180623265792, 477381560501272576,
972777519512027136, 1981583836043018240, 4035225266123964416,
8214565720323784704, -1729382256910270464, -2882303761517117440,
-4611686018427387904, -6917529027641081856, -9223372036854775808,
-9223372036854775808, 64, 130,
264, 536, 1088,
2208, 4480, 9088,
18432, 37376, 75776,
153600, 311296, 630784,
1277952, 2588672, 5242880,
10616832, 21495808, 43515904,
88080384, 178257920, 360710144,
729808896, 1476395008, 2986344448,
6039797760, 12213813248, 24696061952,
49928994816, 100931731456, 204010946560,
412316860416, 833223655424, 1683627180032,
3401614098432])
在第二个系统上,我得到:
array([ 0, 2, 8,
24, 64, 160,
384, 896, 2048,
4608, 10240, 22528,
49152, 106496, 229376,
491520, 1048576, 2228224,
4718592, 9961472, 20971520,
44040192, 92274688, 192937984,
402653184, 838860800, 1744830464,
3623878656, 7516192768, 15569256448,
32212254720, 66571993088, 137438953472,
283467841536, 584115552256, 1202590842880,
2473901162496, 5085241278464, 10445360463872,
21440476741632, 43980465111040, 90159953477632,
184717953466368, 378231999954944, 774056185954304,
1583296743997440, 3236962232172544, 6614661952700416,
13510798882111488, 27584547717644288, 56294995342131200,
114841790497947648, 234187180623265792, 477381560501272576,
972777519512027136, 1981583836043018240, 4035225266123964416,
8214565720323784704, -1729382256910270464, -2882303761517117440,
-4611686018427387904, -6917529027641081856, -9223372036854775808,
-9223372036854775808, 0, 0,
0, 0, 0,
0, 0, 0,
0, 0, 0,
0, 0, 0,
0, 0, 0,
0, 0, 0,
0, 0, 0,
0, 0, 0,
0, 0, 0,
0, 0, 0,
0, 0, 0,
0])
因此,如您所见,在某些情况下,结果会变得不一致。 有谁知道是什么原因造成的?
添加
“不同的系统”是指不同的计算机。 第一台计算机具有 numpy 1.15.1,第二台计算机具有 1.15.2。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.