栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

2、NumPy数组的常用方法

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2、NumPy数组的常用方法

目录
  • 1.特殊数组的创建方法
    • 1.1、全0数组
    • 1.2、全1数组
    • 1.3、 随机数组:rand生成服从0-1分布的随机数
    • 1.4、随机数组:randn生成标准正态分布的随机数
    • 1.5、随机数组:randn生成标准正态分布的随机数
    • 1.6、 随机数组:normal生成元素是指定随机分布的数组
    • 1.7、 生成全数值相同的数组
    • 1.8、 生成单位矩阵
    • 1.8、 生成对角矩阵
    • 1.9、 按照某种形状生成ndarray
  • 2.数组常用变形方法
    • 2.1、 reshape方法:调整数组行列结构
    • 2.2、 reshape方法:array.reshape(-1, 1)、array.reshape(1, -1)用法
    • 2.3、 flatten方法:将数组降为一维数组
    • 2.4、 T方法:数组的转置
  • 3.数组的拼接
    • 3.1、vstack:纵向拼接,按列拼接,新增行,上下拼接
    • 3.2、hstack:横向拼接,按行拼接,新增列,左右拼接
  • 4.数组的切分
    • 4.1、hsplit:左右切分
    • 4.2、vsplit:上下切分
    • 4.3、array_split:通用切分方法

import numpy as np

1.特殊数组的创建方法

1.1、全0数组

  np.zeros(6, dtype=‘int’) # 默认是浮点型,转化为整型

  out:array([0, 0, 0, 0, 0, 0])

1.2、全1数组

  np.ones((3, 2)) # 三行两列

  array([[1., 1.],
     [1., 1.],
      [1., 1.]])

1.3、 随机数组:rand生成服从0-1分布的随机数

  np.random.rand(5) # 返回服从0-1分布的5个数

1.4、随机数组:randn生成标准正态分布的随机数

  np.random.randn(5) # 默认是浮点型,转化为整型

  out:array([ 1.84519234, 0.44723496, 0.61016206, -0.39027894, -0.26761442])

1.5、随机数组:randn生成标准正态分布的随机数

  np.random.randn(5) # 默认是浮点型,转化为整型

  out:array([ 1.84519234, 0.44723496, 0.61016206, -0.39027894, -0.26761442])

1.6、 随机数组:normal生成元素是指定随机分布的数组

  np.random.normal(4, 2, (3,3)) # 三行三列,元素服从均值4、方差为2的正态分布

  out:array([[ 5.53705005, 1.95477989, 3.07768639],
[ 4.15457427, 3.69587242, 3.18715934],
[ 5.46093734, 6.60888084, -0.55980278]])

1.7、 生成全数值相同的数组

  np.full((2, 2), 3) # 二行二列,全是3的数组

  out:array([[3, 3],
       [3, 3]])

1.8、 生成单位矩阵

  np.eye(2,dtype=‘int’) # 二行二列单位矩阵

  out:array([[1, 0],
       [0, 1]])

1.8、 生成对角矩阵

  np.diag([1, 2, 3])

  out:array([[1, 0, 0],
       [0, 2, 0],
        [0, 0, 3]])

1.9、 按照某种形状生成ndarray

  e = [[2,1,3],[4,3,2]]

  np.array(e)

  out:array([[2, 1, 3],
       [4, 3, 2]])

  np.ones_like(e) #同e形状的全1数组

  out:array([[1, 1, 1],
       [1, 1, 1]])

  np.zeros_like(e) #同e形状的全0数组

  out:array([[0, 0, 0],
       [0, 0, 0]])

  np.full_like(e,5) #同e形状的全5数组

  out:array([[5, 5, 5], [5, 5, 5]]) 2.数组常用变形方法

  类似于矩阵,数组在执行实际运算过程中,也经常会涉及一些形变的方法。

  a1 = np.random.rand(2, 3) 2行3列的随机数组

2.1、 reshape方法:调整数组行列结构

  a1.reshape(3, 2) #重置为3行2列

2.2、 reshape方法:array.reshape(-1, 1)、array.reshape(1, -1)用法

  可以将-1理解为占位符

  a1.reshape(-1, 1) #重置为多行1列的二维数组
  a1.reshape(1, -1) #重置为1行多列的二维数组

  需要注意的是,转化后的数组仍然是二维数组。若要实现维度的转化,则需要使用flatten函数。

2.3、 flatten方法:将数组降为一维数组

  a1.flatten()

2.4、 T方法:数组的转置

  a1.T # 就类似于矩阵的转置

3.数组的拼接

  对属于数组而言,由于经常涉及到数组的组合运算,因此数组和数组之间的组合拼接,对于数据技术来说,也是常用操作。

  a1 = np.array([[1, 2], [3, 4]])
  a2 = np.array([[5, 6], [7, 8]])

3.1、vstack:纵向拼接,按列拼接,新增行,上下拼接

  np.vstack([a1, a2]) # 需要输入一个序列

  out:array([[1, 2], [3, 4], [5, 6], [7, 8]]) 3.2、hstack:横向拼接,按行拼接,新增列,左右拼接

  np.hstack([a1, a2]) ) # 需要输入一个序列

  out:array([[1, 2, 5, 6], [3, 4, 7, 8]]) 4.数组的切分

  有拼接就有切分。接下来,简单看下数组的切分方法。

  a = np.arange(24).reshape(3,8) # 创建3行8列的二维数组

4.1、hsplit:左右切分
  • np.hsplit(a,2) # 当第二个参数只输入一个数时,是进行等分;


  无法等分的情况会报错(ValueError: array split does not result in an equal division)

  当第二个参数输入一个序列时,则是根据列标进行切分:

  • np.hsplit(a,(1,2,3)) # 第一列、第二列、第三列后进行切分

4.2、vsplit:上下切分
  • np.vsplit(a,3) # 三等分
  • np.vsplit(a,(1, )) # 第一行后进行切分
4.3、array_split:通用切分方法

  axis = 0,上下切分
  axis = 1,左右切分

  • np.array_split(a, 2, axis=1) # axis = 1,左右切分,均分
  • np.array_split(a, (1, ), axis=1) # 根据列标进行切分

  • np.array_split(a, 3, axis=0) # axis = 0,左右切分,3等分
  • np.array_split(a, (1, ), axis=0) # 根据列标进行切分

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/934238.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号