• numpy基础知识


    官网简介:

    http://www.numpy.org/

    ndarry基本属性

    • ndarry是Numpy中的N维数组对象(N dimentional arrya,ndarray)
    • ndarry中所有的元素必须是相同类型的
      data = [[1,2,3],[4,5,6]]
      a = np.arry(data)
    

    基本属性:

    1. ndim:一个衡量数组维度的对象 (a.ndim --> 2)
    2. shape:一个衡量各个维度大小的元祖 (a.shape --> (2,3))
    3. dtype:一个用于说明数组数据类型的对象 (a.dtype --> int64)

    ndarray数组的数据类型

    1. Numpy中的数据类型有
    int8、uint8、int16、unit16 、int32、unit32、int64、unit64、
    float16, float32, float64, float128, complex64, complex128, complex256, bool, object,
     string, unicode.
    

    数据类型的转换

    • [x] astype
    data = np.array(['1.23','4.56','7.89'])
    res = data.astype(float)
    
    • [x] dtype
    data = np.array([1,2,3], dtype=np.float64) #默认int64 改成float64d
    

    索引与切片

    索引(Indexing)

    1. 一维数组:a[0] a[1] a[2]
    2. 二维数组:a[0,0] a[0,1] a[0,2]
    3. axis 0 --> 列
    4. axis 1 --> 行

    切片(Slicing)

    1. ndarray的切片是原始数组的视图,做修改时,数据不会被复制,而是直接反映到
      源数据上。如果想要得到切片的副本,则需要使用copy(),例如 arr[2:3].copy()。

    丰富的索引和切片方式

    1. 基本索引和切片方式
    import numpy as np
    arr1d = np.arange(10)
    arr2d = np.array([[1,2,3],[4,5,6]])
    arr3d = np.array([[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]]])
    
    [:]、 [x] 、[x : y]、 [x,y]、 [x][y] 、[x:]、 [:y] 、[:y, x:]、 [x,:y]、 [:,:y] (比如x=1,y=2)
    
    1. 布尔型索引
    • 布尔型索引可以帮助我们筛选出符合条件的数据(类似Excel中的Vlookup函数)
    GDP_Percent = np.array([7.90,7.80,7.30, 6.90,6.70]) 
    Year = np.array([2012,2013,2014,2015,2016]) 
    print(Year[GDP_Percent>7])
    
    [2012 2013 2014]
    
    1. 花式索引(Fancy Indexing)
    • 利用整数数组进行索引,index为默认的以0开始的整数形式。
    • fancy indexing概念上很简单:即指传递索引数组以便一次得到多个数组元素。使用fancy indexing时要特别注意的一点是返回数组的shape反映的是索引数组的shape而不是被索引的原数组的shape。
    简单情况:一维数组
    data= np.random.randn(8,4) print(data)
    print(data[[2,4,0,6]])
    print(data[[-6,-4,-8,-2]])
    
    高级用法:多维数组
    X = np.arange(12).reshape((3,4))
    array([[ 0,  1,  2,  3],
           [ 4,  5,  6,  7],
           [ 8,  9, 10, 11]])
           
    row = np.array([0, 1, 2])
    col = np.array([2, 1, 3])
    X[row,col]
    array([2, 5, 11]) #第一个元素2代表X[0, 2],在索引中将列向量和行向量结合可以得到二维结果
    
    
    X[row[:, np.newaxis], col] # 行向量中的每个值与每个列向量配对(用了numpy的broadcasting)
    row[:, np.newaxis]
    array([[0],
           [1],
           [2]])
           
    array([[ 2,  1,  3],
           [ 6,  5,  7],
           [10,  9, 11]])
         
    
    
  • 相关阅读:
    对结对编程的测试
    用例
    结对编程 一
    个人项目总结与结对编程的开始
    7-6随便写写
    7-5个人日报
    7-4个人报告
    7.1-7.3个人日报
    6-30个人日报
    6-29个人日报
  • 原文地址:https://www.cnblogs.com/0xcafedaddy/p/9350810.html
Copyright © 2020-2023  润新知