zoukankan      html  css  js  c++  java
  • array numpy 模块

     高级用法:http://www.jb51.net/article/87987.htm

    from array import * 调用 array 与 import numpy as np  调用 np.array 的区别:

    # a=array.array(‘c‘),决定着下面操作的是字符,并是单个字符

    # a=array.array(‘i‘),决定着下面操作的是整数

    >>> a=array.array(‘i‘)#整数,b与i类似

            >>> a.append(8)
            >>> a.append(81)
            >>> a
            array(‘i‘, [8, 81])#构成list  此时数组的长度还是2,前面的 i 只是一个指示性的标识,不构成数组的元素。

            >>> a=array.array(‘c‘)#单个字符

            >>> a.append(‘g‘)
            >>> a.append(‘g‘)
            >>> a
            array(‘c‘, ‘gg‘)#单个字符连接

    * 用np.array调用array 不用要指示性标志:

    b=np.array([2,3,4])

    2、array形状

    a=[1,2,3,4]

    b=np.array(a)

    b.shape  返回:(4,)  表示 b是一个 4列的向量,不是矩阵  ,这个b.shape值是一个元祖,可以提取其中的元素,比如:

    1)b.shape[0:]  返回 (4,)

    2)b.shape[1:]  返回 ()  ,这个返回表示 没有列,那么源数据是一个向量,不是矩阵

    c=np.array([[1,2,3],[4,5,6]])

    c.shape  返回:(2, 3)  表示是一个2行3列的矩阵

    同理,

    c.shape[0:]  返回 (2, 3)

    c.shape[1:]  返回 (3,)  表示是3列 源数据是个矩阵

    3、np.r_,np.c_

    用法:concatenation function 
    np.r_按行来组合数组,
    np.c_按照colunm来组合数组

    >>> a = np.array([1,2,3]) 

     b = np.array([5,2,5]) >>>

    //测试 np.r_

    >>> np.r_[a,b]  array([1, 2, 3, 5, 2, 5])

    >>> >>> //测试 np.c_ >>>

    np.c_[a,b] array([[1, 5], [2, 2], [3, 5]])

    >>> np.c_[a,[0,0,0],b] array([[1, 0, 5], [2, 0, 2], [3, 0, 5]])

    4、np.linspace

    np.linspace(-1,1,5)   #-1 开始 1 结束 ,产生5个数  

    array([-1. , -0.5,  0. ,  0.5,  1. ]) 

    5、产生正态随机数和矩阵

    numpy.random.normal(size=100)
    numpy.random.normal(size=(10, 10))

    value=np.random.normal(size=(204620, 50))
    gender=np.random.randint(0,1,size=(1,204620))

    6、np.argsort   #从小到大排列的索引值

      b=np.array([1,5,3,4,9,6])

      ==>np.argsort(b)   => array([0, 2, 3, 1, 5, 4])

      b[:-4:-1]   => array([6, 9, 4])  #倒着取(4-1=3) 个数

    7、b=np.array([1,5,3,4,9,6])

        x=('a','b','c','d','e','f')

      让x 按照 b的由小到大的顺序排序的索引进行排序,再反向取3个值。

      1)取b由小到达的排序的索引

          np.argsort(b)       =》array([0, 2, 3, 1, 5, 4])

     2)将x 按照上述的索引 进行排序:

         np.array(x)[np.argsort(b)]     =》    array(['a', 'c', 'd', 'b', 'f', 'e'], dtype='|S1')

    3)再反向取 3个值:

      np.array(x)[np.argsort(b)][:-4:-1]    =》  array(['e', 'f', 'b'], dtype='|S1')

      

  • 相关阅读:
    EF之POCO应用系列4——延迟加载
    四色原型札记(一)
    HTTP1.1 > HTTP2.0
    【ArangoDB踩坑】字符串查询要加引号
    利用线程池实现多客户端和单服务器端Socket通讯(二):异步编程模型实现
    题目:若干个不重复数,打乱顺序输出
    wtf js(三) number的类型不是number
    wtf js(二)
    算法:给定两个已从小到大排好序的整型数组arrA和arrB,将两个数组合并成arrC,使得arrC也要按从小到大的顺序排好序
    利用线程池实现多客户端和单服务器端Socket通讯(一):同步方式
  • 原文地址:https://www.cnblogs.com/zhangbojiangfeng/p/6102491.html
Copyright © 2011-2022 走看看