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')

  

原文地址:https://www.cnblogs.com/zhangbojiangfeng/p/6102491.html