python 模块 模块整合

p7:关于numpy

  • 用于快速处理任意维度数组的python库
  • 支持常见的数组和矩阵操作
  • numpy使用ndarray对象来处理多维数组,该对象是一个灵活又快速的大数据容器

直接上代码:

1,快速生成0,1数组

  • ones(维度)
  • zores(维度)
  • zores_like(数组)
  • ones_like(数组)
ones([维度]):生产全1数组.zores同理
zores_like(array):根据传入的数组,生成相同维度的全0数组.ones_like同理

2,从现有数组生成数组

  • array(数组):深拷贝
  • asarray(数组):浅拷贝
手动创建一个

3,生成简单数组

  • lispace(起始值,结束值,个数):生成指定范围,指定个数的等差数组
lispace
  • arange(起始值,结束值,步长):生成指定步长,指定范围的等差数组

arange
  • logspace(起始指数,结束指数,个数):生成指定指数的等比数组
logspace

4,生成随机数组

  • random.randint(40,100,(4,5)):在40-100之间,生成一个(4,5)维度的随机数组。 【维度不限制】
  • np.random.normal(1.75,1,10000000):生成一个均值1.75,标准差为1,包含10000000样本的数组. =》正态分布
  • np.random. uniform(-1, 1, 10000000):生成一个-1到1均匀分布的数组10000000

5,数组形状修改

  • reshape(维度):返回修改后的数组,不修改原数组
能修改的前提是,前后的元素总数要一致
  • resize(维度):无返回值,直接修改原数组

维度设置时,可以将某一维设置为-1。 例如resize([2,-1]):表示修改成2行,但不知道多少列(会自行计算,无法整除时会报错)

  • T:返回转置后的数组

6,类型修改

  • astype
  • tobytes():将数组以字节的形式返回

7,数组去重

  • unique(数组):去掉重复的元素,以一维数组形状返回

8,逻辑运算

demo1:

返回结果依次对比后的数组

demo2:

满足条件的位置置为1

9,通用判断

  • all()
  • any()

10,三元运算

  • where()
  • logical_and()
  • logical_or()
  • logical_xor()

11,统计运算

12,ndarray数组间的运算

数组间运算遵循广播机制,满足以下两个要求才可以进行计算

1,某一个数组的某一维度是 2,两个数的某一维相等

上述代码是一个(4,1)数组和一个(1,3)的数组相加。 结果是一个(4,3)数组.过程如下
两个数组都向着“最大的行,最大的列”扩展,分别扩展到相同维度后再最后进行计算

13,矩阵的运算

  • dot(array1,array2):矩阵相乘
  • matmul(array1,array2):矩阵相乘,不支持与标量的运算
数组a当作是学生的期中和期末成绩,b当作的权重
结果一样

dot和matmul的区别