使用求幂时,NumPy数组输出不同

dy1byipe  于 2022-11-10  发布在  其他
关注(0)|答案(1)|浏览(143)

关于在Jupyter笔记本中使用NumPy数组的输出的快速问题。
我定义了一个简单的数组arr = np.array([1, 2, 3], dtype=np.int32),并执行了几个操作,只是为了适应语法之类的东西,并注意到了以下内容:

In: arr * arr
Out: array([1, 4 ,9])

In: arr * 5
Out: array([5, 10, 15])

In: arr**2
Out: array([1, 4, 9], dtype=int32)

对于求幂,输出包括dtype。它看起来很无害,因为它没有将数据类型更改为int16(为什么要这样)或类似的任何东西,但这有一个明显的差异,我很好奇它背后是否有什么原因,比如在幕后发生的事情决定了输出行为。
提前谢谢!

kyxcudwk

kyxcudwk1#

TL:上面@user2357112提供的评论链接中的解决方案DR摘要:

In: arr = np.array([1, 2, 3])

In: arr.dtype.type
Out: numpy.int32

In: (arr**2).dtype.type
Out: numpy.intc

In: (arr.dtype.type) == (arr**2).dtype.type
Out: False

因此,将打印dtype。这是一些C语言趣味的原因。

相关问题