numpy创建数组方法

先来介绍创建数组。创建数组的方法有很多。如可以使用array函数从常规的Python列表和元组创造数组。所创建的数组类型由原序列中的元素类型推导而来。   
>>> from numpy import *
   
>>> a = array( [2,3,4] )   
>>> a
    array([2, 3, 4])
>>> a.dtype
    dtype('int32')
>>> b = array([1.2, 3.5, 5.1])   
>>> b.dtype
    dtype('float64')

使用array函数创建时,参数必须是由方括号括起来的列表,而不能使用多个数值作为参数调用array。

>>> a = array(1,2,3,4)    # 错误
>>> a = array([1,2,3,4])  # 正确

可使用双重序列来表示二维的数组,三重序列表示三维数组,以此类推。

>>> b = array( [ (1.5,2,3), (4,5,6) ] )  
>>> b
    array([[ 1.5,  2. ,  3. ],
        [ 4. ,  5. ,  6. ]])

可以在创建时显式指定数组中元素的类型

>>> c = array( [ [1,2], [3,4] ], dtype=complex)
>>> c
    array([[ 1.+0.j,  2.+0.j],
       [ 3.+0.j,  4.+0.j]])

通常,刚开始时数组的元素未知,而数组的大小已知。因此,NumPy提供了一些使用占位符创建数组的函数。这些函数有助于满足除了数组扩展的需要,同时降低了高昂的运算开销。

用函数zeros可创建一个全是0的数组,用函数ones可创建一个全为1的数组,函数empty创建一个内容随机并且依赖与内存状态的数组。默认创建的数组类型(dtype)都是float64。

可以哟娜特d.dtype.itemsize来查看数组中元素占用的字节数目。
 

>>> d = zeros((3,4))
>>> d.dtype
dtype('float64')
>>> d
array([[ 0.,  0.,  0.,  0.],
     [ 0.,  0.,  0.,  0.],
     [ 0.,  0.,  0.,  0.]])
>>> d.dtype.itemsize
8

也可以自己制定数组中元素的类型

>>> ones( (2,3,4), dtype=int16 )  #手动指定数组中元素类型
      array([[[1, 1, 1, 1],
           [1, 1, 1, 1],
           [1, 1, 1, 1]],
   
          [[1, 1, 1, 1],
           [1, 1, 1, 1],
           [1, 1, 1, 1]]], dtype=int16)
>>> empty((2,3))
   array([[  2.65565858e-316,   0.00000000e+000,   0.00000000e+000],
          [  0.00000000e+000,   0.00000000e+000,   0.00000000e+000]])

NumPy提供一个类似arange的函数返回一个数列形式的数组:

>>> arange(10, 30, 5)
    array([10, 15, 20, 25])

NumPy类型转换方式如下:

>>> float64(42)
    42.0
>>> int8(42.0)
    42
>>> bool(42)
    True
>>> bool(42.0)
    True
>>> float(True)
    1.0

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值