Python中numpy库的使用!!!(超实用!!)

目录

Numpy的基本使用

NumPy库中用于创建数组的函数

NumPy库中用于随机数生成的函数

NumPy数组的属性(维度、形状、元素总数、数据类型和每个元素的字节大小)


Numpy的基本使用

NumPy是Python科学计算的基础库,主要用于数组和矩阵运算。NumPy提供了许多高效的方法来操作数据和执行数值计算,并且具有比Python内置列表更高的性能。

以下是一些NumPy库的使用示例:

1.导入NumPy库

import numpy as np

2.创建numpy数组

# 从列表创建numpy数组
a = np.array([1, 2, 3])
print(a)  # 输出: [1 2 3]

# 创建全0数组
b = np.zeros((2, 3))  # 传入一个元组表示数组的形状
print(b)              # 输出: [[0. 0. 0.]
                       #       [0. 0. 0.]]

# 创建全1数组
c = np.ones(4)
print(c)  # 输出: [1. 1. 1. 1.]

# 创建等差数组
d = np.arange(2, 10, 2) # 从2开始到10,间隔为2
print(d)                # 输出: [2 4 6 8]

3.对数组进行索引和切片

# 索引单个元素
a = np.array([1, 2, 3])
print(a[0])  # 输出: 1

# 切片
b = np.array([1, 2, 3, 4, 5, 6])
print(b[1:5])  # 输出: [2 3 4 5]

# 多维数组的索引和切片
c = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(c[0][1])      # 输出: 2
print(c[1,:2])      # 输出: [4 5]
print(c[:2, 1:])    # 输出: [[2 3]
                    #       [5 6]]

4.数组的基本运算

# 数组加减乘除
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
print(a + b)  # 输出: [5 7 9]
print(a - b)  # 输出: [-3 -3 -3]
print(a * b)  # 输出: [ 4 10 18]
print(b / a)  # 输出: [4.  2.5 2. ]

# 数组的统计函数
c = np.array([4, 3, 6, 1, 2])
print(np.mean(c))     # 输出: 3.2
print(np.max(c))      # 输出: 6
print(np.min(c))      # 输出: 1
print(np.median(c))   # 输出: 3.0
print(np.var(c))      # 输出: 2.64

(1)mean函数

        mean函数是一个统计函数,用于计算数组或矩阵中元素的平均值。

        在NumPy中,np.mean()函数接受一个数组或矩阵作为参数,可以指定axis参数来计算该轴上的平均值。例如,当axis=0时,np.mean()函数将返回每列的平均值;当axis=1时,它将返回每行的平均值。

(2)median函数

        median函数是一种用于计算数值序列中位数的函数。在统计学中,中位数是将一组数值按照从小到大的顺序排列后,处于中间的一个数(当该序列为偶数个时,取中间两个数的算术平均数)。median函数广泛应用于数据分析和处理领域,例如用于消除极端值、测量数据集的变异性等。

        在Python NumPy中,numpy.median()函数可用于计算数组、列表等数值序列的中位数,其语法为:numpy.median(a, axis=None),其中a为输入数组或列表,axis参数表示选择的轴向(默认为None,即所有元素)。该函数返回输入序列的中位数,可以同时计算多个轴向的中位数。

(3)var函数

        var函数是一种计算数值序列中方差的函数。在统计学中,方差是样本数据与其平均数之差的平方值的平均数。方差越大,说明数据的分布越分散;方差越小,说明数据的分布越集中。因此,方差是衡量数据离散程度的重要指标之一。

        在Python NumPy库中,numpy.var()函数用于计算数组、列表等数值序列的方差,其语法为:numpy.var(a, axis=None, ddof=0),其中a为输入数组,axis参数表示选择的轴向(默认为None,即所有元素),ddof参数表示自由度修正值(默认为0)。该函数返回指定序列的方差。

        需要注意的是,在使用var函数计算方差时,可能需要根据不同的目的进行自由度修正,以避免由于样本数量较小而导致方差被低估的问题。


NumPy库中用于创建数组的函数

1.zeros函数是用来创建一个全零数组或矩阵。

numpy.zeros(shape, dtype = float, order = 'C')

        其中,shape参数表示数组的形状,可以接受一个整数或者一个整数组成的元组。dtype参数表示数组的数据类型,可以指定为int、float、complex等。order参数表示数组元素在内存中的排列顺序,可以指定为C(按行排列)或F(按列排列)。

import numpy as np

# 创建一个2*3的全零数组
a = np.zeros((2, 3))
print(a)  # 输出: [[0. 0. 0.]
          #       [0. 0. 0.]]

2.ones函数是用来创建一个全1数组或矩阵。其语法与zeros函数类似,只需将zeros替换为ones即可。

import numpy as np

# 创建一个4个元素的全1数组
b = np.ones(4)
print(b)  # 输出: [1. 1. 1. 1.]

# 创建一个3*3的全1矩阵
c = np.ones((3, 3))
print(c)  # 输出: [[1. 1. 1.]
          #       [1. 1. 1.]
          #       [1. 1. 1.]]

3.diag函数是用来创建对角阵的函数。

numpy.diag(v, k=0)

        其中,v参数可以是一个一维数组或列表,也可以是一个整数n(表示创建n*n的对角阵),k参数表示对角线的偏移量(默认为0,表示主对角线)。

import numpy as np

# 创建一个4*4的对角矩阵,对角线上的元素为1,2,3,4
a = np.diag([1, 2, 3, 4])
print(a)  # 输出: [[1 0 0 0]
          #       [0 2 0 0]
          #       [0 0 3 0]
          #       [0 0 0 4]]

4.eye函数是用来创建单位矩阵的函数。单位矩阵是一个主对角线上的元素都是1,其他元素都是零的方阵。

numpy.eye(N, M=None, k=0, dtype=float, order='C')

        其中,N参数表示行数,M参数表示列数(默认为N),k参数表示对角线的偏移量(默认为0),dtype参数表示数据类型,默认为float。

import numpy as np

# 创建一个3*3的单位矩阵
a = np.eye(3)
print(a)  # 输出: [[1. 0. 0.]
          #       [0. 1. 0.]
          #       [0. 0. 1.]]

5.full函数是用来创建填充指定值的数组的函数。

numpy.full(shape, fill_value, dtype=None, order='C')

        其中,shape参数表示数组的形状,fill_value参数表示要填充的值,dtype参数表示数据类型,order参数表示数组元素在内存中的排列顺序。

import numpy as np

# 创建一个2*3的数组,填充数值为7
a = np.full((2, 3), 7)
print(a)  # 输出: [[7 7 7]
          #       [7 7 7]]

NumPy库中用于随机数生成的函数

1.seed函数是用来设置随机数种子的函数。

numpy.random.seed(seed=None)

其中,seed参数为随机数种子,若不指定种子,则会根据当前时间生成一个随机种子。

import numpy as np

# 设置随机种子
np.random.seed(42)
a = np.random.rand(2, 3)
print(a)  # 输出: [[0.37454012 0.95071431 0.73199394]
          #       [0.59865848 0.15601864 0.15599452]]

# 重新设置相同的随机种子
np.random.seed(42)
b = np.random.rand(2, 3)
print(b)  # 输出: [[0.37454012 0.95071431 0.73199394]
          #       [0.59865848 0.15601864 0.15599452]]

重新设置相同的随机种子之后,生成的随机数序列也是相同的。

2.rand函数用于生成给定形状的随机数数组。

numpy.random.rand(d0, d1, ..., dn)

其中,d0, d1, ..., dn表示每个维度上数组的大小。

import numpy as np

# 生成一个100个元素的一维随机数数组
a = np.random.rand(100)
print(a)

# 生成一个3*3的二维随机数数组
b = np.random.rand(3, 3)
print(b)

3.randn函数用于生成标准正态分布中的样本值。

numpy.random.randn(d0, d1, ..., dn)
import numpy as np

a = np.random.randn(2, 3)
print(a)  # 输出: [[-0.3224172  -0.38405435  1.13376944]
          #       [-1.09989127 -0.17242821 -0.87785842]]

4.randint函数用于生成指定范围内的随机整数。

numpy.random.randint(low, high=None, size=None, dtype='l')

        其中,low参数表示随机整数的下限(包含),high参数表示随机整数的上限(不包含),如果不指定high参数,则默认生成low到2^31-1之间的随机整数。size参数表示生成数组的形状。

import numpy as np

# 生成一个大小为3的、取值范围在[0, 10)之间的随机整数数组
a = np.random.randint(0, 10, size=3)
print(a)  # 输出: [5 8 5]

# 生成一个3*3*3的、取值范围在[10, 20)之间的随机整数数组
b = np.random.randint(10, 20, size=(3, 3, 3))
print(b)

NumPy数组的属性(维度、形状、元素总数、数据类型和每个元素的字节大小)

1).ndim属性:返回数组的维度数。

numpy.ndarray.ndim
import numpy as np

a = np.array([[1, 2], [3, 4]])
print(a.ndim)  # 输出: 2

2).shape属性:返回数组的形状,即每个维度上的长度。

numpy.ndarray.shape

返回值为一个元组。

import numpy as np

a = np.array([[1, 2], [3, 4]])
print(a.shape)  # 输出: (2, 2)

3).size属性:返回数组中的元素总数。

numpy.ndarray.size
import numpy as np

a = np.array([[1, 2], [3, 4]])
print(a.size)  # 输出: 4

4).dtype属性:返回数组中元素的数据类型。

numpy.ndarray.dtype
import numpy as np

a = np.array([[1, 2], [3, 4]])
print(a.dtype)  # 输出: int64

5).itemsize属性:返回数组中每个元素的字节数。

numpy.ndarray.itemsize
import numpy as np

a = np.array([[1, 2], [3, 4]])
print(a.itemsize)  # 输出: 8 (默认情况下,int64类型的元素占8个字节)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值