☰
【机器学习】Numpy
2026/10/8 18:33:31 网站建设 项目流程

NumPy属性


  1. arr=np.array([[1,2,3] ,[4,5,6]]) print("ndim: ",arr.ndim) # 2 二维数组 print("shape: ",arr.shape) #(2,3) 二行3列 print("size: ",arr.size) # 6, 一共六个元素 print("dtype: ",arr.dtype) # int 64 print("itemsize: ",arr.itemsize) # 8 , 每个int 64占8个字节
  2. # 生成0 - 14 的数字,重塑为 3 行5 列的二维数组 a=np.arange(15).reshape(3,5) print("数组的维度:",a.shape) # (3, 5) print("数组轴的个数:",a.ndim) # 2 print("数组元素类型: ",a.dtype) # int64 print("数组中每个元素的字节大小:",a.itemsize) # 8 print("数组元素的总个数:",a.size) # 15 print("类型查询:",type(a)) # <class 'numpy.ndarray'> print(a)


    1)a.shape:返回元组(3,5),代表数组3 行 5 列;元组长度就是维度数
    2)a.ndim:轴 / 维度数量,这里是2,二维数组
    3)a.dtype:数组内元素的数据类型,默认int64(64 位整数)
    4)a.itemsize:单个元素占用内存字节数,int64占 8 字节
    5)a.size:数组全部元素总数3*5=15
    6)np.arange(15):生成 [0,1,2,3,...,14]
    7).reshape(3,5)
    :把一维数组,重新调整形状为 3 行 5 列,
    元素总数必须匹配(3*5=15)

创建ndarray

  1. ndarray 是 NumPy 的多维数组对象,特点:
    1)下标从 0 开始
    2)数组内所有元素必须是同一种数据类型
    3)运算速度快、占用内存少,支持矢量运算与广播机制

array ()

  1. np.array() 是最基础的创建数组的方法,接收列表 / 元组等序列,生成 ndarray
  2. import numpy as np a=np.array([2,3,4]) print("数组a元素:",a) print("数组a类型:",a.dtype) b=np.array([1.2,3.2,4.5]) print("数组b元素:",b) print("数组b类型:",b.dtype)


    数组a里面都是整数,自动识别为int64(整型)
    数组b里面都是小数,自动识别为float64(浮点型)

  3. 补充
    列表同时包含整数 + 浮点数,会自动全部转为浮点数:
    c=np.array([1,2.5,3]) print(c.dtype) # float64

np.zeros () /np.ones () /np.empty ()

  1. 知识点

  2. shape 参数:
    1)(3,4) → 二维数组:3 行 4 列
    2)(2,3,4) → 三维数组:2 块,每块 3 行 4 列
  3. # zero 创建3行4列 全0二维数组 zeros1=np.zeros((3,4)) print(zeros1) # ones 创建2块 每块3行4列的三维全1数组 ones1=np.ones((2,3,4)) print(ones1) # empty 创建2行3列数组,值为内存残留随机数 empty1=np.empty((2,3)) print(empty1)


np.arange ()

  1. np.arange() 和 Python 内置range()很像,生成一维 ndarray 数组
    区别:python range只能整数;np.arange支持小数步长

  2. 语法:
    np.arange(start, stop, step, dtype)

    1)start:起始值(包含),默认 0
    2)stop:终止值(不包含)
    3)step:步长,默认 1
    4)dtype:指定数组元素类型

  3. np_arange=np.arange(10,20,5,dtype=int) print("arange创建np_arange: ",np_arange) print("arange创建np_arange的元素类型:",np_arange.dtype) print("arange创建np_arange的类型: ",type(np_arange))

    核心记住:start 取,stop 不取
    10 取 10
    10+5 取 15
    15+5 不取 20

np.matrix ()

  1. matrix(简称mat)是ndarray的子类,只能创建二维矩阵,不能生成一维、三维

  2. 特点:矩阵相乘用*直接运算(和普通 ndarray 不一样)
  3. 不推荐优先用 matrix,日常开发更推荐直接用 ndarray 数组
  4. matrix和 asmatrix
    1)返回的对象类型完全一样,都是 matrix(二维矩阵,ndarray 子类)
    2)唯一差别:是否复制内存
    a)np.matrix():
    默认 copy=True →
    新建一份独立数据副本,修改新矩阵不会影响原来数组
    b)np.asmatrix():
    等价 matrix(data, copy=False) →
    尽量不复制,共用同一块内存,修改它会影响原始数组
  5. 三种写法
    import numpy as np # 写法1:字符形式,空格分隔同行元素,分号 ; 换行 x1=np.matrix("1 2;3 4") print(x1) # 写法2: 字符串,逗号分隔同行元素,分号 ; 换行 x2=np.matrix("1,2;3,4") print(x2) # 写法3 传入二维列表生成矩阵 x3=np.matrix([[1,2,3,4],[5,6,7,8]]) print(x3)


创建随机数矩阵

  1. 三个函数对比

  2. 小知识点:
    1)返回值都是numpy.ndarray(numpy 数组 / 矩阵)
    2)randint 是左闭右开:randint(-1,5) 能取到 -1,取不到 5,最大整数是 4
    3)uniform 均匀分布,区间内每个数出现概率相等
  3. # 1. np.random.rand(行数,列数): 生成【0.0,1.0) 之间的随机浮点数 # arr=np.random.rand(3,4) # print(arr) # print(type(arr))

  4. # 2. np.random.randint(low,high,size = (行,列)) 生成 [low,high) 的随机整数 arr=np.random.randint(-1,5,size=(3,4)) print(arr) print(type(arr))

  5. # 3. np.random.uniform(low,high,size=(行, 列) 生成 [low, high)的均匀分布随机浮点数 arr=np.random.uniform(-1,5,size=(3,4)) print(arr) print(type(arr))


ndarray 数据类型

  1. dtype 参数:创建数组的时候,直接指定数组元素的数据类型,
    格式:类型名+位数, 例如 float64、int32

  2. astype() 方法:对已经存在的数组,生成一个新数组,转换数据类型
    (原数组不会改变)
  3. # 初始化3行4列数组,数据类型为float64 zeros_float_arr=np.zeros((3,4),dtype=np.float64) print(zeros_float_arr) print(zeros_float_arr.dtype)

  4. 转换数据类型
    # astype转换数据类型,将自己 已有的数据类型转换为int32 zeros_float_arr=np.zeros((3,4),dtype=np.float64) zeros_int_arr=zeros_float_arr.astype(np.int32) print(zeros_int_arr) print(zeros_int_arr.dtype)

  5. 补充
    1)np.float64:双精度浮点数,占 8 字节;np.int32:32 位整型,占 4 字节
    2)astype不会修改原数组,是返回新数组,必须用变量接收返回值

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询