zoukankan      html  css  js  c++  java
  • Python科学计算学习一 NumPy 快速处理数据

    1 创建数组

    (1) array(boject, dtype=None, copy=True, order=None, subok=False, ndmin=0)

    a = array([1, 2, 3, 4])

    b = array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])  

    a.dtype    --> dtype('int32')

    a.shape    --> (4,)

    b.shape    -->(3, 4)

    a.shape=2, -1  #(-1时自动计算,相当于2, 6)

    c = a.reshape((2,2))  #c和a公用一个空间  

    (2) arange([start,] stop [,step], dtype=None) 

    a = arange(5)    -->array([0, 1, 2, 3, 4])

    a[2:4]    -->array([2,3])  

    a[:-1]    -->array([0, 1, 2, 3])  #下标为负数,表示从后往前数

    a[2:4] = 20, 30    -->array([0, 1, 20, 30, 4])  #可以通过下标修改元素

    x = arange(5, 0, -1)    -->array([5, 4, 3, 2, 1])

    x[array([True, False, True, False])]

    -->array([5, 3])   #只获取布尔数组中True所在的下标 0 2 长度不够算False

    x[array([True, False, False, True, False])) = -5, -2  #用布尔数组修改True所在下标的元素

    x    -->array([-5, 4, 3, -2, 1])  

    (3) linspace(start, stop, num=50, endpoint=True, retstep=False) #等差数列的一维数组

          logspane(start, stop, num=50, endpoint=True, base=10)         #等比数列的一维数组

    (4) frombuffer

      fromfile

      fromstring(string, dtype=float, count=-1, sep=' ')

    fromstring('abcdefgh', int8)    

    -->array([ 97, 98, 99, 100, 101, 102, 103, 104], dtype=int8)  #一个字符占1个字节(Byte)=8位(bit), 

    fromstring('abcdefgh', in16)    

    -->array([25185, 25699, 26213, 26727], dtype=int16)  #25185=98*256 + 97  

    (5) fromfunction(funtion, shape, **kwargs)


    def func(i, j):

      return (i+1) * (j+1)

    a = fromfunction(func, (9, 9))    -->  生成一个99乘法口诀二维数组 a[i, j] = func(i, j)

     上面等价于 arange(1,10).reashape(-1,1) * arange(1,10)

    KEEP LEARNING!
  • 相关阅读:
    Luogu5860 「SWTR-03」Counting Trees
    $NOIP1998$ 题解报告
    $NOIP1997$ 题解报告
    $NOIP2008$ 题解报告
    $NOIP2004$ 题解报告
    $NOIP2010$ 题解报告
    $NOIP2009$ 题解报告
    Luogu P1879 玉米田 题解报告
    CH301 任务安排2 题解报告
    $[NOIp2017]$ 逛公园 $dp$/记搜
  • 原文地址:https://www.cnblogs.com/roronoa-sqd/p/4684832.html
Copyright © 2011-2022 走看看