2、NumPy数组的常用方法

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) # 根据列标进行切分

在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值