• python之numpy操作1


    一,多维数组

    1.numpy中的多维数组是numpy.ndarray类类型的对象,可用于表示数据结构中任意维度的数组

    2.创建多维数组的对象

    方法一:numpy.arange(起始值,终止值,步长),默认起始值是0,步长是1,终止值不可缺省,这个返回的是数组

    方法二:numpy.array(任何可被解释成数组的容器)这是一个函数,这个数组内部储存是连续的,要求数据是同一类型。

    3.dnarray.dtype属性表示元素的数据类型

    import numpy as np
    a = np.arange(10) #[0 1 2 3 4 5 6 7 8 9]
    b = np.arange(1,10) #[1 2 3 4 5 6 7 8 9]
    c = np.arange(1,10,2) #[1 3 5 7 9]
    print(a)
    print(b)
    print(c)
    d = np.array([]) #空数组
    e = np.array([1,2,3,4]) #一位数组
    f = np.array([[1,2,3],[4,5,6]]) #二维数组
    print(d)
    print(e)
    print(f)
    #查看这些数据类型
    print(type(a))  #<class 'numpy.ndarray'>
    print(type(e))  #<class 'numpy.ndarray'>
    print(type(e[0]))  #<class 'numpy.int32'>
    
    print(a.dtype)  #int32
    print(e.dtype)  #int32
    print(f.dtype)  #int32

    这里边有一个astype()函数

    a = np.array(['1','2','3','4'],dtype=np.int32)
    print(a.dtype) #int32
    b = a.astype(np.str)  #这个函数是用来修改为指定的数据类型
    print(type(b[0])) #<class 'numpy.str_'>
    #在同一个数组里边我们可以强制去放一些不同的数据类型
    a = np.array([('ABCD',[1,2,3])],dtype='U4,3i4') #U是字符串的简称,3i4的i4表示的是int32其中3表示3个int32的数据
    print(a) #[('ABCD', [1, 2, 3])]
    print(a[0]['f0']) #ABCD
    print(a[0]['f0'][0]) #A
    print(a[0]['f0'][1]) #B
    print(a[0]['f0'][2]) #C
    #我们还可以指定名称来代替上边的f0
    b = np.array([('ABCD',[1,2,3])],dtype=[
        ('name',np.str_,4),
        ('scores',np.int32,3)
    ])
    print(b[0]['name']) #ABCD
    print(b[0]['name'][0])#A
    print(b[0]['name'][1])#B
    print(b[0]['name'][2])#C

    #其中'names''formats'不能变
    c = np.array([('ABCD',[1,2,3])],dtype={
    'names':['name','scores'],
    'formats':['U4','3i4']
    })
    print(c)
    print(c[0]['name'])#ABCD
    print(c[0]['name'][0])#A
    print(c[0]['name'][1])#B
    print(c[0]['name'][2])#C
     

    改变数组的维度:

    1.视图变维:针对同一数组获取不同维度的数组视图

    数组.reshape(新维度)获得一个数组的新维度视图

    数组.ravel()获取数组的一维视图

    2.复制变维

    针对同一数组获取不同维度的数组副本

    数组.flatten()返回一个数组的一维副本

    3.就地变维

    直接使用数组.shape = ()就会把源数组的维度改变

    还可以使用数组.resize()可以改变这个数组的维度

    arr1 = np.arange(1,9)
    print(arr1)#[1 2 3 4 5 6 7 8]
    arr1.shape = (2,2,2) 
    print(arr1)
    # [[[1 2]
    #   [3 4]]
    #
    #  [[5 6]
    #   [7 8]]]
  • 相关阅读:
    nginx日志模块及日志定时切割
    Nginx学习笔记
    Nginx负载均衡和反向代理
    python--inspect模块
    Python--sys
    Docker 中 MySQL 数据的导入导出
    分布式监控-open-falcon
    《转载》脚本实现从客户端服务端HTTP请求快速分析
    《转载》日志大了,怎么办?用我的日志切割脚本吧!
    《MySQL》一次MySQL慢查询导致的故障
  • 原文地址:https://www.cnblogs.com/boost/p/13441506.html
Copyright © 2020-2023  润新知