python安装卡在core inter_python – 如何在我的机器上安装numpy / core ...

你链接的代码是Joe Kington的numpy包的分支.

您发布的git clone命令将该fork的源代码下载到本地计算机.然后你必须编译numpy并安装它才能使用这个版本的numpy.

获取isclose函数的最简单方法是将代码复制到文件中并导入它:

utils_num.py

import numpy as np

def isclose(a, b, rtol=1.e-5, atol=1.e-8, equal_nan=False):

"""

https://github.com/joferkington/numpy/blob/3a85c0a9af64b0296b9a4c97f43f2f209c849077/numpy/core/numeric.py

Returns a boolean array where two arrays are element-wise equal within a

tolerance.

The tolerance values are positive, typically very small numbers. The

relative difference (`rtol` * abs(`b`)) and the absolute difference

`atol` are added together to compare against the absolute difference

between `a` and `b`.

Parameters

----------

a, b : array_like

Input arrays to compare.

rtol : float

The relative tolerance parameter (see Notes).

atol : float

The absolute tolerance parameter (see Notes).

equal_nan : bool

Whether to compare NaN's as equal. If True, NaN's in `a` will be

considered equal to NaN's in `b` in the output array.

Returns

-------

y : array_like

Returns a boolean array of where `a` and `b` are equal within the

given tolerance. If both `a` and `b` are scalars, returns a single

boolean value.

See Also

--------

allclose

Notes

-----

For finite values, isclose uses the following equation to test whether

two floating point values are equivalent.

absolute(`a` - `b`) <= (`atol` + `rtol` * absolute(`b`))

The above equation is not symmetric in `a` and `b`, so that

`isclose(a, b)` might be different from `isclose(b, a)` in

some rare cases.

Examples

--------

>>> np.isclose([1e10,1e-7], [1.00001e10,1e-8])

array([True, False])

>>> np.isclose([1e10,1e-8], [1.00001e10,1e-9])

array([True, True])

>>> np.isclose([1e10,1e-8], [1.0001e10,1e-9])

array([False, True])

>>> np.isclose([1.0, np.nan], [1.0, np.nan])

array([True, False])

>>> np.isclose([1.0, np.nan], [1.0, np.nan], equal_nan=True)

array([True, True])

"""

def within_tol(x, y, atol, rtol):

result = np.less_equal(abs(x - y), atol + rtol * abs(y))

if np.isscalar(a) and np.isscalar(b):

result = result[0]

return result

x = np.array(a, copy=False, ndmin=1)

y = np.array(b, copy=False, ndmin=1)

xfin = np.isfinite(x)

yfin = np.isfinite(y)

if np.all(xfin) and np.all(yfin):

return within_tol(x, y, atol, rtol)

else:

# Avoid subtraction with infinite/nan values...

cond = np.zeros(broadcast(x, y).shape, dtype=bool)

mask = xfin & yfin

cond[mask] = within_tol(x[mask], y[mask], atol, rtol)

# Check for equality of infinite values...

cond[~mask] = (x[~mask] == y[~mask])

if equal_nan:

# Make NaN == NaN

cond[isnan(x) & isnan(y)] = True

return cond

test.py:

import utils_num as UN

print(UN.isclose([1e10,1e-7], [1.00001e10,1e-8]))

产量

array([ True, False], dtype=bool)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值