NumPy是Numerical Python的简称,是Python中专门用于数值计算的软件库,是进行科学计算所必备的基础软件库,很多第三方软件库都是基于NumPy实现的。

        NumPy中最常见的类是被称为ndarray的用于操作多维数组的类。

        1、NumPy可以通过pip命令安装: pip install numpy。(此处已经安装,若未安装,则执行安装)


        2、如果使用集成环境,如PyCharm,在Python packages中搜索,也可以在包中搜索NumPy,然后进行安装。


        3、NumPy导入(NumPy作为第三方库必须导入才能使用):import numpy as np

 (1)numpy创建一维数组。

  • import  numpy as np
    a=np.array([1,2,3])
    print(a)
  • [1 2 3]
    
  • import numpy as np
    data1=[1,2,3,4,5,6,7,8,9]
    data=np.array(data1)
    print(data)                          #[1,2,3,4,5,6,7,8,9]
  • import numpy as np
    data1=[1,2,3,4,5,6,7,8,9]
    data=np.array(data1,dtype=float)
    print(data)                          #[1. 2. 3. 4. 5. 6. 7. 8. 9.]

(2)执行a*2操作:np中的每个数组元组都变成原来的2倍

  • import  numpy as np
    a=np.array([1,2,3])
    print(a)
    print(f"a*2:{a*2}")
  • [1 2 3]
    a*2:[2 4 6]

(3)执行a+10:np中的数组每个元素都+10

  • import  numpy as np
    a=np.array([1,2,3])
    print(a)
    print(f"a+10:{a+10}")
  • [1 2 3]
    a+10:[11 12 13]

(4)对列表对象进行乘法运算(这和第2点不一样,请比较)
  • import  numpy as np
    a=np.array([1,2,3]*3)
    print(a)
  • [1 2 3 1 2 3 1 2 3]

(5)数组运算(a+b,a-b,a*b,a/b)
  • import  numpy as np
    a=np.array([1,2,3])
    b=np.array([4,5,6])
    print(a+b)
    print(a-b)
    print(a*b)
    print(a/b)
    
  • [-3 -3 -3]
    [ 4 10 18]
    [0.25 0.4  0.5 ]

(6)np.dot()内积计算

  • import  numpy as np
    a=np.array([1,2,3])
    b=np.array([4,5,6])
    print(np.dot(a,b))
  • 32

(7)np.arange()函数

  • import  numpy as np
    a=np.arange(10)
    print(a)
  • [0 1 2 3 4 5 6 7 8 9]
    

(8)np.arange()函数(步长2)
  • import  numpy as np
    a=np.arange(0,10,2)
     print(a) 
  • [0 2 4 6 8]        

(9)np.linspace()函数,等分划分
  • import  numpy as np
    a=np.linspace(0,14,10)
    print(a)
  • [ 0.          1.55555556  3.11111111  4.66666667  6.22222222  7.77777778
      9.33333333 10.88888889 12.44444444 14.        ]

(10)ndim,shape和dtype:ndim,维度,shape是一个表示各维度大小的元组,如(4,3)表示4行3列
import  numpy as np
a=np.array([[1,2,3],[4,5,6],[7,8,9],[10,11,12]])
print(a.ndim)
print(a.shape)
print(a.dtype)
2
(4, 3)
int64

(11)np.zeros(10)创建全0一维数组

import  numpy as np
a=np.zeros(10)
print(a)
[0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]

(12)创建4行5列的全0数组

import  numpy as np
a=np.zeros((4,5))
print(a)
[[0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0.]]

(13)np.ones(10)创建全1的一维数组

  • import  numpy as np
    a=np.ones(10)
    print(a)
  • [1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]
    

(14)类型转换(data.astype(np.float64将data数组转换为float64类型,初始类型为int64)

import numpy as np
data1=[1,2,3,4,5,6,7,8,9]
data=np.array(data1)
print(data.dtype)                     #int
data1=data.astype(np.float64)
print(data1.dtype)                    #float64
int64
float64

(15)np.concatenate():连接(合并)a、b两个数组

  • import  numpy as np
    a=np.array([1,2,3,4,5])
    b=np.array([6,7,8,9,10])
    c=np.concatenate((a,b))
    print(c)
  • [ 1  2  3  4  5  6  7  8  9 10]

(16)np.reshape():改变数组的形状
  • import  numpy as np
    a=np.array([1,2,3,4,5,6])
    b=a.reshape(2,3)
    print(b)
  • [[1 2 3]
     [4 5 6]]

(17)np.expand_dims()

  • import  numpy as np
    a=np.array([1,2,3,4,5,6])
    print(a.shape)
    b=np.expand_dims(a,axis=1)
    print(b)
    print(b.shape)
  • 
    (6,)
    [[1]
     [2]
     [3]
     [4]
     [5]
     [6]]
    (6, 1)

(18)条件判断(>,=,<)

  • import  numpy as np
    a=np.array([[1,2,3,4,5,6],[10,20,30,40,50,60]])
    print(a[a<30])
  • [ 1  2  3  4  5  6 10 20]
  • import  numpy as np
    a=np.array([[1,2,3,4,5,6],[10,20,30,40,50,60]])
    print(a[a>=30])
  • [30 40 50 60]

(19)条件判断(%)

  • import  numpy as np
    a=np.array([[1,2,3,4,5,6],[10,20,30,40,50,60]])
    print(a[a%5==0])
  • [ 5 10 20 30 40 50 60]

(20条件判断(&)

  • import  numpy as np
    a=np.array([[1,2,3,4,5,6],[10,20,30,40,50,60]])
    print(a[(a>5)&(a<30)])
    
  • [ 6 10 20]
(21)条件判断(|)

  • import  numpy as np
    a=np.array([[1,2,3,4,5,6],[10,20,30,40,50,60]])
    print(a[(a<5)|(a>40)])
  • [ 1  2  3  4 50 60]

(22)修改数据类型
  • import numpy as np
    arr=np.arange(10)
    print(arr.dtype)
    arr.dtype=np.float64
    print(arr.dtype)
  • int64
    float64

(23)切片与切片广播(这一点与列表不太一样,切片的任何修改都会作用到源数组上)

  • import numpy as np
    arr=np.array([0,1,2,3,4,5,6,7,8,9])
    print(arr[2:6])
    arr[2:6]=88
    print(arr)
  • [2 3 4 5]
    [ 0  1 88 88 88 88  6  7  8  9]
  • import numpy as np
    data=np.array([1,2,3,4,5,6,7,8,9,10])
    data_slice=data[5:8]
    data_slice[:]=88
    print(data)
    data_slice=data[5:8].copy()
    data_slice[:]=99
    print(data)
  • [ 1  2  3  4  5 88 88 88  9 10]
    [ 1  2  3  4  5 88 88 88  9 10]

(24)numpy中的np.hanning()

  • import numpy as np
    import matplotlib.pyplot as plt
    window = np.hanning(50)
    print('w2:', window)
    plt.plot(window)
    plt.show()
    # np.hanning函数是numpy库中比较常见的函数,
    # 它生成余弦窗函数或者高斯函数,
    # 用于过滤或者突出某个物体,输入参数为M,
    # 输出是一行M列的向量

(25)凯泽窗

import numpy as np
import matplotlib.pyplot as plt
# 调用kaiser函数,以计算凯泽窗
window = np.kaiser(42, 14)
print(window)
# 使用Matplotlib绘制凯泽窗
plt.plot(window)
plt.show()
# np.kaiser
# 函数用于计算凯泽窗。凯泽窗是一种可调整的窗函数,其形状由两个参数控制,常用于数字信号处理中。
# 使用方法
# np.kaiser
# 函数的基本语法如下:
# np.kaiser(M, beta)
# M:表示窗口的长度,即窗函数的样本点数,是一个整数。
# beta:是一个控制窗函数形状的参数,为浮点数。beta
# 值越大,窗函数的主瓣越窄,旁瓣越低。
# 凯泽窗是一种在时域上的窗函数,可用于信号处理中的频谱分析、滤波器设计等。通过调整
# beta参数,可以在主瓣宽度和旁瓣衰减之间进行权衡

更多推荐