numpy--学习笔记

1. numpy两种基本对象: ndarray和ufunc
  1. ndarry是存储单一数据类型的多维数组

  2. ufunc是能够对数组进行处理的函数

2. 数组的属性

image-20200726201349124

3. 数组的创建
  1. array创建一维或多维数组

    • numpy.array(object, dtype=None, copy=True, order=‘K’, subok=False, ndmin=0)

      • object: 接收array,表示想要创建的数组
      • dtype: 表示数组说需要的数据类型,如果为给定,则选择保存对象所需的最小类型
    • 例如:

      • 创建一维数组

        image-20200726203711329

      • 创建二维数组

        image-20200726203852196

      • 查看数组的维数

        image-20200726204109259

      • 查看数组的尺寸

        image-20200726204135299

      • 查看数组元素个数

        image-20200726204239528

  2. range通过指定开始值,终止值,步长来创建一维数组,不含终值

    image-20200726204923711

  3. linspace通过指定开始值,终止值,元素个数来创建一维数组,包含终值

    image-20200726205221021

  4. logspace和linspace类似,生成等比数列

    • 生成1~100,10个元素的等比数列
      image-20200726205502573
      • 其中1表示十的一次方,2表示十的二次方,10表示元素的个数
  5. zeros生成全为0的数组

    image-20200726205920924

  6. eye创建对角线上值全为1的数组

    image-20200726210050731

  7. ones创建数值全为1的数组

    image-20200726210108752

  8. diag创建除对角线以外全为0的数组,对角线可以为0,也可以不为0

    image-20200726210416431

  9. 创建随机数组

    1. random

      image-20200726211134234

    2. rand生成服从均匀分布的随机数

      image-20200726211152412

    3. randn生成服从正态分布的随机数

      image-20200726211220178

    4. randint生成给定上下限范围的随机数

      • numpy.random.randint(low, high=None, size=None, dtype=‘l’)

      • low为最小值,high为最大值,size为数组的shape

        image-20200726211550062

4.数组的索引
  1. 一维数组的索引,和列表相似

    image-20200726212252739

  2. 二维数组的索引,各个维度之间用逗号隔开

    image-20200726212635483

    image-20200726212728875

5. 数组的形态变换
  1. reshape改变数组的形状,不修改原始数据
    image-20200726214947484

  2. resize(())在原始数据上进行变换,没有返回值

  3. T对原数组进行转置

  4. 将数组展平

    1. ravel

    image-20200726215036499

    1. flatten可以横向或者纵向展平

      image-20200726215341605

    2. hstack横向组合,行数必须相同

      image-20200727085605478

    3. vstack纵向组合,列数必须相同

      image-20200727090123248

    4. concatenate可以实现横向和纵向组合,其中参数axis=0表示纵向,axis=1表示纵向

      image-20200727113840129

      image-20200727113903574

      image-20200727113916835

  5. 分割

    1. hsplit(ary, indices_or_sections) 横向分割

      image-20200727192206576

      image-20200727192320065

    2. vsplit(ary, indices_or_sections) 纵向分割

      image-20200727192425887

      image-20200727192438298

    3. split(ary, indices_or_sections, axis=0)

      image-20200727193533447

      image-20200727193550187

6. 矩阵的创建
  1. mat和matrix函数创建矩阵

    image-20200727194352119

  2. bmat分块矩阵

    image-20200727194651832

  3. 矩阵的运算

    image-20200727195127146

    image-20200727195143523

    image-20200727195204539

  4. 矩阵的属性

    image-20200727195244127

  5. 在numpy的逻辑运算中,numpy.all函数表示逻辑and,numpy.any函数表示逻辑or

  6. 不同形状的数组进行运算时,numpy会实行广播机制,其遵循一下四则法则:

    1. 让所有的输入数组向其中shape最长的数组看齐,shape中不足的部分通过在前面加1补齐。
    2. 输出数组的shape是输入数组shape的各个轴上的最大值。
    3. 如果输入数组的某个轴和输出数组的对应轴的长度相同或者其长度为 1,则这个数组能够用来计算,否则出错。
    4. 当输入数组的某个轴的长度为1时,沿着此轴运算时使用此轴上的第一组值。
7. numpy读写文件
  1. save函数以二进制的格式保存数据
    • numpy.save(file, arr, allow_pickle=True, fix_imports=True)
    • 参数 file 为要保存的文件的名称
    • 参数arr为需要保存的数组
    • 其文件的扩展名.npy是系统自动添加的
    • image-20200727202531611
  2. savez函数保存多个数组
    • numpy.save(file, arr1,arr2)
  3. savetxt函数可将数组写到以某种分隔符隔开的文本文件中
    • np.savetxt(fname, X, fmt=’%.18e’, delimiter=’ ‘, newline=’\n’, header=’’,footer=’’, comments=’# ')
    • fname 文件名, X数组数据
    • delimiter 数据分隔符
  4. loadtxt函数执行的是相反的操作,即把文件加载到一个二维数组中
  5. genfromtxt函数和loadtxt函数相似,不过它面向的是结构化数组和缺失数据。它通常使用的参数有3个,即存放数据的文件名参数“fname”、用于分隔的字符参数“delimiter”和是否含有列标题参数“names”
  6. load函数从二进制的文本中读取数据
    • image-20200727202558546
8. 排序
  1. sort 函数是最常用的排序方法,无返回值。如果目标函数是一个视图,则原始数据将会被修改

    image-20200727203504723

    image-20200727203859468


- [外链图片转存中…(img-YsFWW8st-1597628219313)]

9. 数组的去重
  1. ndarray.uniform()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序烂人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值