Python_Numpy

Numpy笔记

numpy.fft.hfft方法

  • 格式: numpy.fft.hfft(a, n=None, axis=-1, norm=None)
  • 计算具有Hermitian对称性(即实谱)的信号的FFT。即真实频谱。
    numpy.fft.hfft
    numpy.fft.hfft(a, n=None, axis=-1, norm=None)
    计算具有Hermitian对称性(即实谱)的信号的FFT。即真实频谱。
    参数:
    a :array_like
    输入数组。
    b :int, 可选
    输出的转换轴的长度。 对于n个输出点,
    需要n//2 + 1个输入点。
    如果输入长于此长度,则将对其进行裁剪。
    如果比这短,则用零填充。 如果未给出n,
    则将其取为2*(m-1),
    其中m是沿axis指定的轴的输入长度。
    axis :int, 可选
    计算FFT的轴。如果没有给出,则使用最后一个轴。
    norm :{None, “ortho”}, 可选
    规范化模式(请参阅numpy.fft)。 默认为None。
    1.10.0版中的新功能。
    返回值:
    out :ndarray
    截断的或零填充的输入,
    沿着由轴表示的轴进行转换,
    或者如果轴未指定,则为最后一个。
    变换轴的长度为n,如果n不给定,
    则为2m - 2,其中m为输入的变换轴的长度。
    要得到奇数个输出点,必须指定n,
    例如在典型情况下为2
    m - 1,
    Raises:
    IndexError
    如果axis大于a的最后一个轴。
    Notes
    hfft/ ihfft是一对类似于rfft/ irfft,但是对于相反的情况:在这里该信号具有在时域对称性厄米和是在频域中实际。因此,hfft如果结果是奇数,必须在此处提供结果的长度。
    偶数:在舍入误差内,ihfft(hfft(a, 2len(a) - 2)) == a
    奇数:,舍入误差内。ihfft(hfft(a, 2
    len(a) - 1)) == a
    厄米输入的正确解释取决于原始数据的长度,如n所示。这是因为每种输入形状可能对应于奇数或偶数长度的信号。默认情况下,hfft 假设输出长度是偶数,这会将最后一个条目置于奈奎斯特频率;与其对称对应物混叠。通过埃尔米特对称性,该值因此被视为纯实数。为了避免丢失信息,必须给出完整信号的形状。
>>> signal = np.array([1,2,3,4,3,2])
>>> np.fft.fft(signal)
array([15.+0.j, -4.+0.j,  0.+0.j, -1.+0.j,  0.+0.j, -4.+0.j])
>>> np.fft.hfft(signal[:4])
array([15., -4.,  0., -1.,  0., -4.])
>>> np.fft.hfft(signal,6)
array([15., -4.,  0., -1.,  0., -4.])
>>> freq_spectrum = np.fft.hfft(signal)
>>> freq_spectrum
array([[ 1.,  1.],
       [ 2., -2.]])

numpy.asarray函数

  • numpy.asarray(a, dtype=None, order=None)
  • 和array基础功能都是将序列转换为ndarray,不同的是
  • 如果转换对象为一个ndarray,只有dtype不相同时才复制数据
  • 与后面的asnyarray不同的是,它子类未传递
>>> a = np.asarray(a)
>>> a
array([1, 2])
>>> a = [1,2]
>>> type(a)
<class 'list'>
>>> a = np.array([1,2],dtype=np.float32)
>>> np.asarray(a,dtype=np.float32) is a
True
>>> np.asarray(a,dtype=np.float64) is a
False
>>> issubclass(np.recarray,np.ndarray)
True

numpy.asanyarray函数

  • 格式: numpy.asanyarray(a, dtype=None, order=None)
  • 功能: 类似asarray,将一个序列转换为ndarray,传递子类
>>> np.asanyarray(range(5))
array([0, 1, 2, 3, 4])

numpy.ascontiguousarray函数

  • 格式: numpy.ascontiguousarray(a, dtype=None)
>>> x = np.arange(6).reshape(2,3)
>>> np.ascontiguousarray(x,dtype=np.float32)
array([[0., 1., 2.],
       [3., 4., 5.]], dtype=float32)
>>> b = np.arange(6).reshape(2,3)
>>> b
array([[0, 1, 2],
       [3, 4, 5]])
>>> x.flags['C_CONTIGUOUS']
True
#注意:此函数返回一个至少具有一维(1-d)的数组,因此它将不保留0-d数组。

numpy.copy函数

  • 格式: numpy.copy(a, order=‘K’, subok=False)
  • 功能: 返回给对象ndarray副本,等效于np.array(a,copy=True)
  • 请注意:
    np.copy是浅表副本,不会复制数组中的对象元素。这对于包含Python对象的数组非常重要。
    新数组将包含相同的对象,如果可以修改(可变)该对象,则可能会导致意外:
    要确保object复制数组中的所有元素,请使用copy.deepcopy:
>>> x = np.arange(6).reshape(2,3)
>>> x
array([[0, 1, 2],
       [3, 4, 5]])
>>> y = x
>>> x[0] = 10
>>> x
array([[10, 10, 10],
       [ 3,  4,  5]])
>>> y
array([[10, 10, 10],
       [ 3,  4,  5]])
>>> z = np.copy(x)
>>> x[0] = 5
>>> x
array([[5, 5, 5],
       [3, 4, 5]])
>>> y
array([[5, 5, 5],
       [
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值