zoukankan      html  css  js  c++  java
  • 3.3 numpy

    1.三方库导入

    import numpy as np
    '{}'.format(np.typeDict.values())

     

    "dict_values([<class 'numpy.bool_'>, <class 'numpy.bool_'>, <class 'numpy.int8'>, <class 'numpy.int8'>, <class 'numpy.int8'>, <class 'numpy.uint8'>, <class 'numpy.uint8'>, <class 'numpy.uint8'>, <class 'numpy.int16'>, <class 'numpy.int16'>, <class 'numpy.int16'>, <class 'numpy.uint16'>, <class 'numpy.uint16'>, <class 'numpy.uint16'>, <class 'numpy.intc'>, <class 'numpy.intc'>, <class 'numpy.uint32'>, <class 'numpy.uintc'>, <class 'numpy.uintc'>, <class 'numpy.int64'>, <class 'numpy.int64'>, <class 'numpy.int64'>, <class 'numpy.uint64'>, <class 'numpy.uint64'>, <class 'numpy.uint64'>, <class 'numpy.int32'>, <class 'numpy.int32'>, <class 'numpy.int32'>, <class 'numpy.uint32'>, <class 'numpy.uint32'>, <class 'numpy.int64'>, <class 'numpy.int64'>, <class 'numpy.uint64'>, <class 'numpy.uint64'>, <class 'numpy.float16'>, <class 'numpy.float16'>, <class 'numpy.float16'>, <class 'numpy.float32'>, <class 'numpy.float32'>, <class 'numpy.float64'>, <class 'numpy.float64'>, <class 'numpy.float64'>, <class 'numpy.longdouble'>, <class 'numpy.longdouble'>, <class 'numpy.longdouble'>, <class 'numpy.complex128'>, <class 'numpy.complex64'>, <class 'numpy.complex64'>, <class 'numpy.complex128'>, <class 'numpy.complex128'>, <class 'numpy.complex128'>, <class 'numpy.clongdouble'>, <class 'numpy.clongdouble'>, <class 'numpy.clongdouble'>, <class 'numpy.object_'>, <class 'numpy.object_'>, <class 'numpy.bytes_'>, <class 'numpy.bytes_'>, <class 'numpy.str_'>, <class 'numpy.str_'>, <class 'numpy.str_'>, <class 'numpy.void'>, <class 'numpy.void'>, <class 'numpy.void'>, <class 'numpy.datetime64'>, <class 'numpy.datetime64'>, <class 'numpy.timedelta64'>, <class 'numpy.timedelta64'>, <class 'numpy.bool_'>, <class 'numpy.bool_'>, <class 'numpy.bool_'>, <class 'numpy.int64'>, <class 'numpy.int64'>, <class 'numpy.int64'>, <class 'numpy.uint64'>, <class 'numpy.uint64'>, <class 'numpy.uint64'>, <class 'numpy.float16'>, <class 'numpy.float16'>, <class 'numpy.float16'>, <class 'numpy.float32'>, <class 'numpy.float32'>, <class 'numpy.float32'>, <class 'numpy.float64'>, <class 'numpy.float64'>, <class 'numpy.float64'>, <class 'numpy.complex64'>, <class 'numpy.complex64'>, <class 'numpy.complex64'>, <class 'numpy.complex128'>, <class 'numpy.complex128'>, <class 'numpy.complex128'>, <class 'numpy.object_'>, <class 'numpy.object_'>, <class 'numpy.bytes_'>, <class 'numpy.bytes_'>, <class 'numpy.str_'>, <class 'numpy.str_'>, <class 'numpy.void'>, <class 'numpy.void'>, <class 'numpy.datetime64'>, <class 'numpy.datetime64'>, <class 'numpy.datetime64'>, <class 'numpy.timedelta64'>, <class 'numpy.timedelta64'>, <class 'numpy.timedelta64'>, <class 'numpy.int32'>, <class 'numpy.int32'>, <class 'numpy.int32'>, <class 'numpy.uint32'>, <class 'numpy.uint32'>, <class 'numpy.uint32'>, <class 'numpy.uint64'>, <class 'numpy.int16'>, <class 'numpy.int16'>, <class 'numpy.int16'>, <class 'numpy.uint16'>, <class 'numpy.uint16'>, <class 'numpy.uint16'>, <class 'numpy.int8'>, <class 'numpy.int8'>, <class 'numpy.int8'>, <class 'numpy.uint8'>, <class 'numpy.uint8'>, <class 'numpy.uint8'>, <class 'numpy.complex128'>, <class 'numpy.int64'>, <class 'numpy.uint64'>, <class 'numpy.float32'>, <class 'numpy.complex64'>, <class 'numpy.complex64'>, <class 'numpy.float64'>, <class 'numpy.intc'>, <class 'numpy.uintc'>, <class 'numpy.int32'>, <class 'numpy.longdouble'>, <class 'numpy.clongdouble'>, <class 'numpy.clongdouble'>, <class 'numpy.bool_'>, <class 'numpy.bytes_'>, <class 'numpy.bytes_'>, <class 'numpy.str_'>, <class 'numpy.str_'>, <class 'numpy.object_'>, <class 'numpy.int32'>, <class 'numpy.float64'>, <class 'numpy.complex128'>, <class 'numpy.bool_'>, <class 'numpy.object_'>, <class 'numpy.str_'>, <class 'numpy.bytes_'>, <class 'numpy.bytes_'>])"

     

    2.ndarray的重要属性

    shuzu = np.arange(24).reshape(6,4)

    shuzu

     

    array([[ 0,  1,  2,  3],
          [ 4, 5, 6, 7],
          [ 8, 9, 10, 11],
          [12, 13, 14, 15],
          [16, 17, 18, 19],
          [20, 21, 22, 23]])

     

    shuzu.ndim #数组的维度。一二三维

     

    2

     

    shuzu.shape #几行几列

     

    (6, 4)

     

    shuzu.size #元素的总数

     

    24

     

    shuzu.dtype

     

    dtype('int32')

     

    3.创建数组

    1)array函数 创建一个数组,或者将输入的列表或其他序列转换成ndarray

    shuzu2 = np.array([1,2,4,2,7,5,7,5,4,8,21,16]).reshape(3,4)
    
    shuzu2

     

    array([[ 1,  2,  4,  2],
           [ 7,  5,  7,  5],
           [ 4,  8, 21, 16]])

     

    lizi = np.array([[1,2,3],[9,8,7],[6,3,0],[2,3,3]])
    
    lizi

     

    array([[1, 2, 3],
           [9, 8, 7],
           [6, 3, 0],
           [2, 3, 3]])

     

    2)arrange函数 产生一个元素由0开始的数组,返回的是ndarray而不是列表

    shuzu3 = np.arange(18).reshape(3,6)
    
    shuzu3

     

    array([[ 0,  1,  2,  3,  4,  5],
           [ 6,  7,  8,  9, 10, 11],
           [12, 13, 14, 15, 16, 17]])

     

    3)zeros函数 产生数据全为0的数组

    shuzu4 = np.zeros(10,dtype=np.int32)
    
    shuzu4

     

    array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])

     

    shuzu5 = np.ones((3,4),dtype=np.int32) #ones函数作用:产生数据全为1的数组
    
    shuzu5

     

    array([[1, 1, 1, 1],
           [1, 1, 1, 1],
           [1, 1, 1, 1]])

     

    4)random函数

    random

    shuzu6 = np.random.random(12).reshape(4,3) #返回指定数量的随机数,范围在0和1之间
    
    shuzu6

     

    array([[0.64361967, 0.41383032, 0.59942517],
           [0.96873194, 0.44245641, 0.50183907],
           [0.35952847, 0.94468878, 0.99431729],
           [0.65781866, 0.11623172, 0.89006422]])

     

    uniform

    shuzu7 = np.random.uniform(3,9,(16)) 
    #生成指定范围内容的随机数,一组参数决定随机数的上下限,另一个参数决定生成的随机数个数
    
    shuzu7

     

    array([7.562285  , 8.98549068, 7.63501622, 7.78447198, 7.26854663,
           3.17515732, 6.13853817, 4.40997569, 7.12225054, 4.65726706,
           8.8482813 , 8.627138  , 4.90995118, 4.616554  , 6.20267482,
           7.04778997])

     

    randint

    shuzu8 = np.random.randint(4,16,(8))
    #生成指定范围内容的整数,一组参数决定随机数的上下限,另一个参数决定生成的随机数个数
    shuzu8

     

    array([ 9,  4, 12, 11, 11,  8,  6, 14])

     

    shuffle

    lis = [2,3,4,5,7,9,11,123,455]
    
    np.random.shuffle(lis)
    
    lis

     

    [2, 7, 5, 4, 3, 455, 9, 123, 11]

     

    4.数组的运算

    1)四则运算

    data1 = np.array([2.3,5.4])
    data2 = np.array([2.5,6])
    
    '加{},减{},乘{},除{}'.format(data1+data2,data1-data2,data1*data2,data1/data2)

     

    '加[ 4.8 11.4],减[-0.2 -0.6],乘[ 5.75 32.4 ],除[0.92 0.9 ]'

     

    2)标量计算

    '标量-加法{},标量-乘法{}'.format(data1+100,data2*2)

     

    '标量-加法[102.3 105.4],标量-乘法[ 5. 12.]'

     

    5.索引和切片

    1)一维数组

    yiwei = np.arange(9)**2
    
    yiwei

     

    array([ 0,  1,  4,  9, 16, 25, 36, 49, 64], dtype=int32)

     

    yiwei[6]

     

    36

     

    yiwei[2:5] #遵循左闭右开的规则

     

    array([ 4,  9, 16], dtype=int32)

     

    yiwei[:5:2] #2在这里是步长的意思

     

    array([ 0,  4, 16], dtype=int32)

     

    2)二维数组

    erwei = np.random.randint(8,88,(24)).reshape((4,6))
    
    erwei

     

    array([[53, 45, 36, 28, 67, 41],
           [16, 48, 54, 48, 34, 30],
           [48, 70, 37, 30, 77, 86],
           [32, 18, 22, 62, 76, 49]])

     

    erwei[2,4]

     

    77

     

    erwei[1:3]

     

    array([[16, 48, 54, 48, 34, 30],
           [48, 70, 37, 30, 77, 86]])

     

    erwei[:2]

     

    array([[53, 45, 36, 28, 67, 41],
           [16, 48, 54, 48, 34, 30]])

     

    erwei[1:3,3]

     

    array([48, 30])

     

    erwei[:,4]

     

    array([67, 34, 77, 76])

     

    erwei[2:4,:]

     

    array([[48, 70, 37, 30, 77, 86],
           [32, 18, 22, 62, 76, 49]])

     

    6.npz文件的导入和导出

    1)导入

    aa = np.load('国民经济核算季度数据.npz',allow_pickle=True)
    
    #allow_pickle默认为False,在之后的load操作中会报错,需要需要手动设置
    aa.files

     

    ['columns', 'values']

     

    bb = aa['columns']
    cc = aa['values']
    cc

     

    array([[1, '2000年第一季度', 21329.9, ..., 1235.9, 933.7, 3586.1],
           [2, '2000年第二季度', 24043.4, ..., 1124.0, 904.7, 3464.9],
           [3, '2000年第三季度', 25712.5, ..., 1170.4, 1070.9, 3518.2],
           ...,
           [67, '2016年第三季度', 190529.5, ..., 15472.5, 12164.1, 37964.1],
           [68, '2016年第四季度', 211281.3, ..., 15548.7, 13214.9, 39848.4],
           [69, '2017年第一季度', 180682.7, ..., 17213.5, 12393.4, 42443.1]],
          dtype=object)

     

    bb

     

    array(['序号', '时间', '国内生产总值_当季值(亿元)', '第一产业增加值_当季值(亿元)', '第二产业增加值_当季值(亿元)',
           '第三产业增加值_当季值(亿元)', '农林牧渔业增加值_当季值(亿元)', '工业增加值_当季值(亿元)',
           '建筑业增加值_当季值(亿元)', '批发和零售业增加值_当季值(亿元)', '交通运输、仓储和邮政业增加值_当季值(亿元)',
           '住宿和餐饮业增加值_当季值(亿元)', '金融业增加值_当季值(亿元)', '房地产业增加值_当季值(亿元)',
           '其他行业增加值_当季值(亿元)'], dtype=object)

     

    import pandas as pd
    fff = pd.DataFrame(cc,columns=['序号', '时间', '国内生产总值_当季值(亿元)', '第一产业增加值_当季值(亿元)', '第二产业增加值_当季值(亿元)',
           '第三产业增加值_当季值(亿元)', '农林牧渔业增加值_当季值(亿元)', '工业增加值_当季值(亿元)',
           '建筑业增加值_当季值(亿元)', '批发和零售业增加值_当季值(亿元)', '交通运输、仓储和邮政业增加值_当季值(亿元)',
           '住宿和餐饮业增加值_当季值(亿元)', '金融业增加值_当季值(亿元)', '房地产业增加值_当季值(亿元)',
           '其他行业增加值_当季值(亿元)'])
    fff.to_csv('国民经济情况.csv')
    fff.to_csv('gmjjqk.csv',encoding='utf_8_sig')
    小石小石摩西摩西的学习笔记,欢迎提问,欢迎指正!!!
  • 相关阅读:
    ArrayList和LinkedList的底层代码实现思想
    ArrayList(顺序表)和LinkedList(链表)的区别联系,优劣取舍问题
    【AR】增强现实安卓编程
    【报错】"The constructor Notification(int, CharSequence, long) is deprecated
    【gradle报错】error: package org.apache.http does not exist
    【安卓面试题】多线程下载怎么实现?断点续传怎么实现?
    【安卓面试题】在一个Activity启动另一个Activity和在Service中启动一个Activity有什么区别
    java.lang.IllegalArgumentException: Service Intent must be explicit: Intent
    【Android Studio 小技巧】一键查看文件方法结构目录File Structure
    【安卓面试题】使用SQLiteOpenHelper的getReadableDatabase()获得的数据库能不能,做写的操作
  • 原文地址:https://www.cnblogs.com/shijingwen/p/13700475.html
Copyright © 2011-2022 走看看