Python快速傅里叶:scipy.fftpack.ifft
y = np.array([[45.0000 + 0.0000j,0.00000 + 0.0000j,0.00000 + 0.0000j],
[0.0000 + 0.0000j,13.5000 + 7.7942j,0.00000 - 5.1962j],
[0.0000 - 0.0000j,0.00000 + 5.1962j,13.5000 - 7.7942j]])
IFy=ifft2(y)#对矩阵y作傅里叶 逆变换
print(IFy)
print(type(IFy))#获取该矩阵的类型 为复数
print(IFy)
print(type(IFy.real))
print(IFy.real)#获取矩阵的实部 ,当我们只需要实部的时候
np.allclose(y, fft2(ifft2(y)))
Python伽玛函数对数的导数-Digamma函数
调用:from scipy.special import digamma
Python numpy.fill_diagonal()
Python numpy.block创建分块矩阵
#对角线用相同的元素生成的对角对称矩阵
l=5
bA=np.zeros((l,l))
for t in range(0,l):
bA=bA+np.diag(t*np.ones(l-t),t)
bA=bA+np.triu(bA,1).T
print(bA)
Matlab对角分块阵:blkdiag
#-------------------------------
Python中 获取一个列表的倒序:
a=[1,3,4,6,8,9]
#方法一:
b=a
b.reverse()
print(a)
print(b)
#可以发现,a与b都被倒序排列了。
#方法二:
#直接采用如下命令,原来的列表b不会被改变。
c=b[::-1]
Python,矩阵的张量积运算,Numpy.kron(A,B)
A=np.array([[1,2,3],[3,4,5],[1,8,9]])
B=np.kron(A,A)
print(B)
print(B.shape)
Numpy 中的点乘,哈达玛积(Hardamard product),对应位置相乘
import numpy as np
A=np.array([1,2,3,4])
B=np.array([5,2,3,7])
print(np.multiply(A,B))
[ 5 4 9 28]
对某个数 保留小数点的个数
round(5.368,4)
对某个数组A保留小数点个数
A.round(5)
Python中具有不同维数的数组的矢量化计算
numpy.einsum
数组切片,矢量化切片
高级特性
切片操作:对list,tuple元素进行截取操作,非常简便。
L[0:3],L[:3] 截取前3个元素。
L[1:3] 从1开始截取2个元素出来。
L[-1] 取倒数第一个元素出来。
L[-10] 取后10个数
L[10:20] 取前11-20个数
L[:10:2] 取前10个数,每两个取一个
L[::5] 所有数,每5个取一个
L[:] 原样复制一个list
tuple,字符串也可以进行切片操作