美文网首页Python Quants我爱编程
numpy必知必会——ndarray

numpy必知必会——ndarray

作者: fasionchan | 来源:发表于2016-08-30 07:41 被阅读617次

    简介

    ndarray顾名思义,是一个用来存储多维数组的数据结构。

    底层ndarray构造函数

    现在,用ndarray创建一个(2, 3)二维数组,并命名为a。可以看到,a是一个数组,包含2个元素;每个元素分别又是一个数组,包含3个float。请注意,float元素的值是随机的,因为没有指定。

    >>> a = np.ndarray(shape=(2, 3), dtype=float)
    >>> a
    array([[  6.91857857e-310,   6.91857857e-310,   4.78249221e-317],
           [  1.08552349e-316,   1.08552230e-316,   1.08552112e-316]])
    

    接下来,我们可以用下标访问数组a,取出子数组。数组a维数为2,子数组维数则为1。

    >>> a[0]
    array([  6.91857857e-310,   6.91857857e-310,   4.78249221e-317])
    >>> a[1]
    array([  1.08552349e-316,   1.08552230e-316,   1.08552112e-316])
    

    第二维只包含2个元素,因此当下标超出合法范围时,访问将报错。请注意,错误类型为IndexError

    >>> a[2]
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    IndexError: index 2 is out of bounds for axis 0 with size 2
    

    同样地,通过下标可以访问子数组的元素,即取出浮点数。

    >>> a[0][0]
    6.9185785704028074e-310
    

    高层接口

    ndarray基础上,numpy提供了若干个高层构造函数,包括zerosempty等。

    现在,使用zeros创建一个(2, 3, 4)三维数组。注意到,所有的值都初始化为0,而不是一堆没有意义的随机数值。

    >>> np.zeros((2, 3, 4))
    array([[[ 0.,  0.,  0.,  0.],
            [ 0.,  0.,  0.,  0.],
            [ 0.,  0.,  0.,  0.]],
    
           [[ 0.,  0.,  0.,  0.],
            [ 0.,  0.,  0.,  0.],
            [ 0.,  0.,  0.,  0.]]])
    

    内存布局

    相关文章

      网友评论

        本文标题:numpy必知必会——ndarray

        本文链接:https://www.haomeiwen.com/subject/ppsfettx.html