python实现k core算法_Python core.take方法代码示例

该博客展示了如何使用numpy.core.take方法在Python中实现k core算法,通过比较新旧版本的fftshift和ifftshift函数来验证take方法的效果。内容包括导入numpy模块,定义测试函数,并对不同参数进行了一系列的比较和验证。
摘要由CSDN通过智能技术生成

# 需要导入模块: from numpy import core [as 别名]

# 或者: from numpy.core import take [as 别名]

def test_equal_to_original(self):

""" Test that the new (>=v1.15) implementation (see #10073) is equal to the original (<=v1.14) """

from numpy.compat import integer_types

from numpy.core import asarray, concatenate, arange, take

def original_fftshift(x, axes=None):

""" How fftshift was implemented in v1.14"""

tmp = asarray(x)

ndim = tmp.ndim

if axes is None:

axes = list(range(ndim))

elif isinstance(axes, integer_types):

axes = (axes,)

y = tmp

for k in axes:

n = tmp.shape[k]

p2 = (n + 1) // 2

mylist = concatenate((arange(p2, n), arange(p2)))

y = take(y, mylist, k)

return y

def original_ifftshift(x, axes=None):

""" How ifftshift was implemented in v1.14 """

tmp = asarray(x)

ndim = tmp.ndim

if axes is None:

axes = list(range(ndim))

elif isinstance(axes, integer_types):

axes = (axes,)

y = tmp

for k in axes:

n = tmp.shape[k]

p2 = n - (n + 1) // 2

mylist = concatenate((arange(p2, n), arange(p2)))

y = take(y, mylist, k)

return y

# create possible 2d array combinations and try all possible keywords

# compare output to original functions

for i in range(16):

for j in range(16):

for axes_keyword in [0, 1, None, (0,), (0, 1)]:

inp = np.random.rand(i, j)

assert_array_almost_equal(fft.fftshift(inp, axes_keyword),

original_fftshift(inp, axes_keyword))

assert_array_almost_equal(fft.ifftshift(inp, axes_keyword),

original_ifftshift(inp, axes_keyword))

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值