当前位置: 首页 > news >正文

NumPy(by千锋教育)

介绍

numpy( numerical Python)可以存储和处理大型矩阵。

numpy的导入

import numpy as np
import pandas as pd
import matplotlib.pyplot as pltcat = plt.imread('share_6794792b60e2c4923d44e11aed27e55a-01.jpeg')  # 读取图片数据
print('cat:', cat, '\n')   # 图片由数字组成,三维数组(0-255--->>rgb)
print('type(cat):', type(cat), '\n')  # nd-->>多维  array-->>数组
print('cat.shape:', cat.shape, '\n')  # 查看维度,三个数字代表三个维度,421行,725列,3代表RGB颜色的数值# 显示图片
plt.imshow(cat)  # 三维彩色,二维黑白
plt.show()
# 视频:四维数据(x,421,725,3), x:帧数

numpy的数组创建

  1. 使用np.array()创建

    注意:
    numpy默认ndarray的所有元素的类型是相同的
    如果传进来的列表中包含不同的类型,则统一为同一类型,优先级:str>float>int
    ndarray的常见数据类型:int:int8、uint8、int16、int32、int64
    float: float16、float32、float64
    str:字符串

  2. 使用np.ones(shape,dtype=None,order=‘C’)

    所有元素都为1

    shap:形状
    dtype:元素类型
    order:{‘C’, ‘F’},可选,默认值:C是否在内存中以行主(C-风格)或列主(Fortran-风格)顺序存储多维数据,一般默认就行

    n = np.ones(shape=(3, 4), dtype=np.int16)
    
  3. 使用np.zeros(shape, dtype=float)

    所有元素都为0

    shap:形状
    dtype:元素类型

    n = np.zeros(shape=(3, 4), dtype=np.int16)
    
  4. 使用np.full(shape,fill_value, dtype=float, order=‘C’)

    所有元素都为填充值

    shape:形状
    dtype:None: 元素类型
    fill_value: 填充值
    order:{‘C’, ‘F’},可选,默认值:C是否在内存中以行主(C-风格)或列主(Fortran-风格)顺序存储多维数据,一般默认就行

    n = np.full(shape=(3, 4), fill_value=8, dtype=np.int16)
    
  5. 使用np.eye(N, M=None, k=0, dtype=float)

    对角线为1,其他位置为0

    N:行
    M:列数,默认为None,表示行列一样
    k: 向右偏移0个位置,负数为向左偏移
    dtype:None: 元素类型

    n = np.eye(3, 4, k=1,  dtype=np.int8)
    
  6. 使用np.linspace(start, stop, num=50, endpoint=Ture, restep=Flase, dtype=None)

    等差数列

    start:开始
    stop:结束
    num:等差数列中有多少个数字,默认50
    endpoint: 是否包含结束值
    restep:是否返回等差值(步长)
    dtype:None: 元素类型

    n = np.linspace(0, 100, num=51, retstep=True, dtype=np.int8) 
    
  7. 使用np.arange(start, stop, step, dtype=None)

    创建一个数值范围的数组,和range功能类似, [start,stop)

    start:开始
    stop:结束
    step:步长
    dtype:None: 元素类型

    n1 = np.arange(10)  # 0-9
    n2 = np.arange(2, 10, 2)  # 2,4,6,8
    
  8. 使用np.random.randint(low, high=None, size=None, dtype=None)

    创建一个随机整数数组

    low:最小值
    high=None:最大值
    high=None时, 生成的数据在[0,low)区间内
    如果使用high,生成的数据在[low,high)区间内
    size=None:数组形状,默认只输出一个随机值
    dtype:None: 元素类型

    n1 = np.random.randint(10)  # 0-9中随机一个数字
    n2 = np.random.randint(3, 10, size=(3, 4))  # 二维数组
    n3 = np.random.randint(0, 256, size=(20, 40, 3))  # 三维数组
    plt.imshow(n3)
    plt.show()
    
  9. 使用np.random.randn(d0,d1,…,dn)

    服从一个标准正态分布的多维数组,0是均值,1是标准差的正态分布

    dn:第n个维度的数值

    n2 = np.random.randn(10)
    
  10. 使用np.random.random(size=None)

    [0,1)的随机数的多维数组

    size=None:数组形状

    n1 = np.random.random()  # 产生一个数
    n2 = np.random.random(size=(3, 4))
    
  11. 使用np.random.rand(d0,d1,…,dn)

    [0,1)的随机数的多维数组,与np.random.random功能类似

    dn:n个维度

    n1 = np.random.rand()  # 产生一个数
    n2 = np.random.rand(3, 4)

numpy的常用属性

1ndim维度,3代表三维
2shape形状(各维度的长度),有三个数字代表三维
3size915675,总的数据量,总的个数
4dtype类型,unit8
import numpy as np
import pandas as pd
import matplotlib.pyplot as pltcat = plt.imread('cat.jpg')print('cat.ndim:', cat.ndim, '\n')  # 维度,3代表三维
print('cat.shape:', cat.shape, '\n')  # 形状(各维度的长度),有三个数字代表三维
print('cat.size:', cat.size, '\n')  # 915675,总的数据量,总的个数
print('cat.dtype:', cat.dtype, '\n')  # 类型,unit8

numpy的索引和切片

numpy的索引

一维:

n[0]第一个
n[-1]最后一个

二维

n1 [3] [4] / n1[3, 4]第四行,第五列
n1 [-1] [-1]最后一行,最后一列

三维

n2 [1] [2] [-1] n2 [1, 2, -1]剥洋葱
n2[1, 2, -1] = 886改变指定数字
n2[1, 2] = 100
mport numpy as np
import pandas as pd
import matplotlib.pyplot as plt'''1.一维
'''
l = [1, 2, 3, 4]
print('l[0]:', l[0], '\n')
n = np.array(l)
print('n[0]:', n[0], '\n')
print('n[-1]:', n[-1], '\n')  # 一维和列表差不多'''2.二维
'''
n1 = np.random.randint(0, 10, size=(4, 5))
print('n1:', n1, '\n')
# 找到最后一个数字’
print('n1[3][4]:', n1[3][4], '\n')  # 和下边一样的
print('n1[-1][-1]:', n1[-1][-1], '\n')   # 先行后列
print('n1[3, 4]:', n1[3, 4], '\n')  # 和上边一样的'''3.三维
'''
n2 = np.random.randint(0, 100, size=(4, 5, 6))
print('n2:', n2, '\n')
#
print('n2[1][2][-1]:', n2[1][2][-1], '\n')  # 三个数字按照上边的三个维度的顺序来
print('n2[1, 2, -1]:', n2[1, 2, -1], '\n')n2[1, 2, -1] = 886  # 改变指定数据
print('n2:', n2, '\n')n2[1, 2] = 100   # 也可以一个一个指定[1,2,3,4,5,6]
print('n2:', n2, '\n')

numpy的切片

一维

n[2:6]
n[::-1]翻转

二维

看行列

n1[0]第一行
n1[1:4]二到四行
n1[[1, 2, 4]]不连续的三行
n1[:,0]第一列
n1[:,1:4]二到四列
n1[:, [1, 2, 4]]不连续的三列
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
'''1.一维
'''
# 一维与列表完全一致
l = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print('l[2:6]:', l[2:6], '\n')  # [3, 4, 5, 6]
print('l[::-1]:', l[::-1], '\n')  # 列表翻转,[9, 8, 7, 6, 5, 4, 3, 2, 1]n = np.array(l)
print('n:', n, '\n')
print('n[2:6]:', n[2:6], '\n')  # [3, 4, 5, 6]
print('n[::-1]:', n[::-1], '\n')  # 列表翻转,[9, 8, 7, 6, 5, 4, 3, 2, 1]'''2.二维
'''
n1 = np.random.randint(0, 10, size=(6, 8))
print('n1:', n1, '\n')
# 行
print('n1[0]:', n1[0], '\n')  # 取第一行
print('n1[1:4]:', n1[1:4], '\n')  # 取二到四行
print('n1[[1, 2, 4]]:\n', n1[[1, 2, 4]], '\n')  # 取不连续的三行,也可以重复取
# 列
n2 = np.random.randint(0, 10, size=(6, 8))
print('n2:', n2, '\n')
print('n1[:,0]:', n1[:, 0], '\n')  # 取第一列
print('n1[:,1:4]:', n1[:, 1:4], '\n')  # 取二到四列
print('n1[:, [1, 2, 4]]:\n', n1[:, [1, 2, 4]], '\n')  # 取不连续的三列,也可以重复取

题外话

已经大三了,感觉第一次过1024节
现在任然很迷茫
少的不说,多的不辣
加油吧
每天都要笑哦


http://www.mrgr.cn/news/57706.html

相关文章:

  • 【视频混剪Demo】FFmpeg的使用【Windows】
  • Aloudata BIG 主动元数据平台支持 Oracle/DB2 存储过程算子级血缘解析
  • 深入探索路由算法的核心原理与应用
  • Android静态变量中的字段被置空了
  • Rust: [u8] 与 String 相互转换
  • IDEA 如何导入NC65项目
  • 无废话、光速上手 React-Router
  • ORA-12170: TNS: 连接超时,oracle透过防火墙windows设置USE_SHARED_SOCKET=TRUE
  • 牛客网热度最高的17套一线大厂Java面试八股文!面面俱到,太全了
  • 国家眼部疾病临床病例集《眼视光案例荟》首刊在三亚隆重发布
  • 070_基于springboot的Q高中素质评价档案系统
  • Three.js 使用着色器 实现跳动的心
  • 2D拓扑图
  • 项目模块七:TimerWheel模块
  • IEEE 802.3-2012 Clause 22.2.4.2
  • NacosException: Client not connected, current status:STARTING异常解决
  • 在线制作拼团活动步骤是什么
  • java线程池大小与CPU关系
  • Unity插件-Intense TPS 讲解
  • 【Kubernetes实战】Kubernetes集群搭建(虚拟机环境,一主两从)
  • Pandas 文件读取与保存指南:高效处理 CSV、Excel 等多种格式数据
  • 【算法设计与分析】-回溯法的回忆-学习【期末复习篇章】
  • 绘画相关,MIDI
  • js中for...in 和 for...of 区别
  • java生成可执行文件
  • Java中的反射是什么?如何使用反射API?