zoukankan      html  css  js  c++  java
  • Python人工智能常用库Numpy使用入门

      第一章 jupyter notebook简单教程

      命令模式按键esc开启

      Enter : 转入编辑模式

      Shift-Enter : 运行本单元,选中下个单元

      Ctrl-Enter : 运行本单元

      Alt-Enter : 运行本单元,在其下插入新单元

      Y : 单元转入代码状态

      M :单元转入markdown状态

      Z : 恢复删除的最后一个单元

      第二章 numpy简单教程

      2.1 数组

      import numpy as np

      a = np.array([1, 2, 3])

      print(a)

      #out

      [1 2 3]

      a

      #out

      array([1, 2, 3])

      type(a)

      #out

      numpy.ndarray

      a.shape

      #out

      (3,)

      # reshape(1, -1)中1代表设置数组为1行 , -1代表一个占位符 , 表示a数组列数

      # reshape()中-1可以作为行的占位符也可以作为列的占位符

      a = a.reshape(1, -1)

      a.shape

      #out

      (1, 3)

      a = np.array([1, 2, 3, 4, 5, 6])

      a.shape

      #out

      (6,)

      a = a.reshape(2,-1)

      a.shape

      #out

      (2, 3)

      a

      #out

      array([[1, 2, 3],

      [4, 5, 6]])

      a = a.reshape(-1, 2)

      a.shape

      #out

      (3, 2)

      a[2, 0]

      #out

      5

      a[2, 0] = 55

      a[2, 0]

      #out

      55

      # zeros用于创建元素全部为0的矩阵数组

      a = np.zeros((3, 3))

      a

      #out

      array([[0., 0., 0.],

      [0., 0., 0.],

      [0., 0., 0.]])

      # ones用于创建元素全部为1的矩阵数组

      a = np.ones((3, 3))

      a

      #out

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

      [1., 1., 1.],

      [1., 1., 1.]])

      # zeros ones函数也完全可以用full函数实现

      a = np.full((2, 3), 0)

      a

      #out

      array([[0, 0, 0],

      [0, 0, 0]])

      # eye函数用于创建单位矩阵

      a = np.eye(3)

      a

      #out

      array([[1., 0., 0.],

      [0., 1., 0.],

      [0., 0., 1.]])

      # random.random用户创建数值为0-1之间的随机二维数组

      a = np.random.random((2, 3))

      a

      #out

      array([[0.54627035, 0.49586489, 0.6976645 ],

      [0.76596824, 0.95951819, 0.7515421 ]])

      2.2 数组索引操作

      # indexing : 数组索引

      a = np.array([[1, 2, 3, 4],

      [5, 6, 7, 8],

      [9, 10, 11, 12]])

      # -2代表数组的倒数第二行 , 1:3代表从第一列开始往后两个元素

      a[-2:, 1:3]

      #out

      array([[ 6, 7],

      [10, 11]])

      # 取倒数第二行 , 第三列元素

      a[-2, 3]

      #out

      8

      a

      #out

      array([[ 1, 2, 3, 4],

      [ 5, 6, 7, 8],

      [ 9, 10, 11, 12]])

      a.shape

      #out

      (3, 4)

      # 将数组a倒数第二行开始到最后一行 , 从第一列往后两列元素赋值给b数组

      b = a[-2:, 1:3]

      a

      #out

      array([[ 1, 2, 3, 4],

      [ 5, 6, 7, 8],

      [ 9, 10, 11, 12]])

      b

      #out

      array([[ 6, 7],

      [10, 11]])

      b.shape

      #out

      (2, 2)

      # 指定为索引为的2行

      b = a[2, 1:3]

      b

      #out

      array([10, 11])

      b.shape

      #out

      (2,)

      b = a[1, 2]

      b

      #out

      7

      b.shape

      #out

      ()

      b = a[2:3, 1:3]

      b

      #out

      array([[10, 11]])

      b.shape

      #out

      (1, 2)

      # 将数组的3行的1列 + 10

      a[np.arange(3), 1] += 10

      a

      #out

      array([[ 1, 12, 3, 4],

      [ 5, 16, 7, 8],

      [ 9, 20, 11, 12]])

      a[np.arange(2), 3] += 100

      a

      #out

      array([[ 1, 12, 3, 104],

      [ 5, 16, 7, 108],

      [ 9, 20, 11, 12]])

      # 产生一个0,1,2的数组 , 不包含3

      np.arange(3)

      #out

      array([0, 1, 2])

      # 产生一个从3-7的数组 , 不包含7

      np.arange(3,7)

      #out

      array([3, 4, 5, 6])

      a[np.arange(3), [1,1,1]] += 10

      a

      #out

      array([[ 1, 22, 3, 104],

      [ 5, 26, 7, 108],

      [ 9, 30, 11, 12]])

      a[[0,1,2], [1,1,1]] += 10

      a

      #out

      array([[ 1, 32, 3, 104],

      [ 5, 36, 7, 108],

      [ 9, 40, 11, 12]])

      # 判断数组a中大于10的值

      result_index = a>10

      result_index

      #out

      array([[False, True, False, True],

      [False, True, False, True],

      [False, True, True, True]])

      a[result_index]

      #out

      array([ 32, 104, 36, 108, 40, 11, 12])

      a[a>10]

      #out

      array([ 32, 104, 36, 108, 40, 11, 12])

      2.3 元素数组类型

      a = np.array([1,2,3])

      a.dtype

      #out

      dtype('int64')

      a = np.array([1.1, 2.2])

      a.dtype

      #out

      dtype('float64')

      a = np.array([1.1, 1, 'a'])

      a

      #out

      array(['1.1', '1', 'a'], dtype='

      # 将float型数组转化成int型

      a = np.array([1.1, 2.2], dtype=np.int64)

      a

      #out

      array([1, 2])

      # 将a数组赋值给b数组 , 同时设置元素类型为int

      b = np.array(a, dtype=np.int64)

      b

      #out

      array([1, 2])

      2.3 数组运算与常用函数

      numpy中的数学运算

      a = np.array([[1,2],

      [3,4]])

      b = np.array([[5,6],

      [6,5]])

      # 加法

      a+b

      #out

      array([[6, 8],

      [9, 9]])

      np.add(a,b)

      #out

      array([[6, 8],

      [9, 9]])

      # 减法

      a-b

      #out

      array([[-4, -4],

      [-3, -1]])

      np.subtract(a,b)

      #out

      array([[-4, -4],

      [-3, -1]])

      # 乘法

      a*b

      #out

      array([[ 5, 12],

      [18, 20]])

      np.multiply(a,b)

      #out

      array([[ 5, 12],

      [18, 20]])

      # 除法

      a/b

      #out

      array([[0.2 , 0.33333333],

      [0.5 , 0.8 ]])

      np.divide(a,b)

      #out

      array([[0.2 , 0.33333333],

      [0.5 , 0.8 ]])

      # 开方

      np.sqrt(a)

      #out

      array([[1. , 1.41421356],

      [1.73205081, 2. ]])

      a

      #out

      array([[1, 2],

      [3, 4]])

      b = np.array([[1,2,3],

      [4,5,6]])

      # dot : 是将a数组与b数组矩阵相乘的结果

      a.dot(b)

      #out

      array([[ 9, 12, 15],

      [19, 26, 33]])

      np.dot(a,b)

      #out

      array([[ 9, 12, 15],

      [19, 26, 33]])

      numpy中的常用函数

      # sum : 求和函数

      # 计算数组中全部元素的和

      a = np.array([[1,2],

      [3,4]])

      np.sum(a)

      #out

      10

      # 将数组中的每一列进行求和操作

      np.sum(a, axis=0)

      #out

      array([4, 6])

      # 将数组中的每一行进行求和操作

      np.sum(a, axis=1)

      #out

      array([3, 7])

      # mean : 求平均值函数

      # 计算数组的平均值

      np.mean(a)

      #out

      2.5

      # 计算数组每一列的平均值

      np.mean(a, axis=0)

      #out

      array([2., 3.])

      # 计算数组每一行的平均值

      np.mean(a, axis=1)

      #out

      array([1.5, 3.5])

      # uniform : 用户生成一个指定范围内的随机数值

      np.random.uniform(3,4)

      #out

      3.247709331922638

      # tile : 用于将一个数组作为一个元素重复指定的次数

      a无锡妇科医院哪家好 http://www.xasgfk.cn/

      #out

      array([[1, 2],

      [3, 4]])

      # 将数组在行上重复1次, 在列上重复2次

      np.tile(a, (1,2))

      #out

      array([[1, 2, 1, 2],

      [3, 4, 3, 4]])

      # 将数组在行上重复1次, 在列上重复3次

      np.tile(a, (1,3))

      #out

      array([[1, 2, 1, 2, 1, 2],

      [3, 4, 3, 4, 3, 4]])

      # argsort : 将数组中的元素进行排序 , 默认从小到大

      a = np.array([[1,12,3,104],

      [5,10,1,3]])

      # 按照数组下标将元素排好

      np.argsort(a)

      #out

      array([[0, 2, 1, 3],

      [2, 3, 0, 1]])

      # 将每一列进行排序

      a.argsort(axis=0)

      #out

      array([[0, 1, 1, 1],

      [1, 0, 0, 0]])

      # T : 矩阵转置

      a

      #out

      array([[ 1, 12, 3, 104],

      [ 5, 10, 1, 3]])

      a.T

      #out

      array([[ 1, 5],

      [ 12, 10],

      [ 3, 1],

      [104, 3]])

      # 使用transpose函数将数组转置

      np.transpose(a)

      #out

      array([[ 1, 5],

      [ 12, 10],

      [ 3, 1],

      [104, 3]])

      2.4 广播

      广播

      可以将不同维度的数组进行相加 , numpy会将不同维度的数组转化成相同维度的数组 , 广播会在缺失维度和一维的数组上进行操作

      a = np.array([[1, 2, 3],

      [5, 6, 7],

      [9, 10, 11]])

      b = np.array([1,2,3])

      # 将b数组加到a数组的每一行

      for i in range(3):

      a[i, :] += b

      a

      #out

      array([[ 2, 4, 6],

      [ 6, 8, 10],

      [10, 12, 14]])

      # 将b数组行上重复3次 , 列上重复1次 , 与a相加

      a + np.tile(b, (3,1))

      #out

      array([[ 3, 6, 9],

      [ 7, 10, 13],

      [11, 14, 17]])

  • 相关阅读:
    tensorboard使用命令
    FFmpeg安装以及视频转成图片_图片转成视频_以及分辨率转换
    yolo3各部分代码详解(超详细)
    OpenCV+python 彩色图像通道拆分与组合并判断size,shape函数的用法与区别
    基于Keras 的VGG16神经网络模型的Mnist数据集识别并使用GPU加速
    以Mnist为例从头开始自己建立数据集,搭建resnet34,识别Mnist
    2017年Brats 脑肿瘤挑战赛Automatic Brain Tumor Segmentation using Cascaded Anisotropic Convolutional Neural Networks
    2018年BRATS 肿瘤分割挑战赛第三名分割方案One-pass Multi-task Networks with Cross-task Guided Attention for Brain Tumor Segmentation
    脑胶质瘤论文笔记
    .npy文件的保存与加载
  • 原文地址:https://www.cnblogs.com/djw12333/p/11429826.html
Copyright © 2011-2022 走看看