作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
据我了解,在 x = f() * g()
, 第一 f()
执行,然后 g()
,然后结果相乘,然后才分配给 x
.然而,下面似乎与此相矛盾:
import numpy as np
print(np.sqrt(2).dtype)
print((np.array([1.], dtype='float32') * np.array([.5], dtype='float64')).dtype)
print((np.array([1.], dtype='float32') * np.sqrt(2)).dtype)
>>> float64
>>> float64
>>> float32
在我之前的所有经验中,Numpy 晋升为更大的
dtype
,但不是在这里。如果我们分配单个数组并在之后相乘,则行为相同。我想 Numpy 除了
dtype
之外还使用了一些隐藏的属性而不是否决 Python 执行。
最佳答案
在第 2 行:
print((np.array([1.], dtype='float32') * np.array([.5], dtype='float64')).dtype)
您将两个数组相乘,因此它提升了 dtype(如您所料)。但是,在第三行:
print((np.array([1.], dtype='float32') * np.sqrt(2)).dtype)
您将一个标量乘以一个数组,它保留了数组 dtype。请注意,如果您用这样的数组替换标量:
print((np.array([1.], dtype='float32') * np.sqrt([2])).dtype)
您将获得
float64
正如你所期望的那样。
关于python - Numpy float 促销不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66538595/
我有一个 rails/spree 商店应用程序,它使用 spree's "User" rule 进行长期促销.问题是,在促销事件期间,为商店中促销不适用的每个订单创建了不合格的调整。这在数据库中增加了
我想创建一个列来标记员工,只要他们得到晋升(等级变化),如下例所示: +-----------+------------+------------+-------+------+ | PERSON_I
我无法使用 App Store 促销 推广我的应用内购买,因为二进制文件不包含 SKPaymentTransactionObserver 方法,如下所示: These in-app purchases
我是一名优秀的程序员,十分优秀!