注: 本文章翻译自 这里
介绍
有5种方法可以创建数组:
- 从python的其他数据类型转换过来,比如 列表list , 元组tuple 等
- numpy 数组创建的内置函数,比如 arange,linspace,ones 等
- 从磁盘里,或者从其他标准和自定义的格式里读入
- 通过字符串或者指针创建数组
- 用特殊的库函数,比如 random 等
1. 将array_like的数据类型转换成array
大体来说,python中像数组的数值数据都可以通过**函数array()**转换成数组。最典型的是 列表list 和 元组tuple 型的数据。而一些支持数组协议的类型也可以转换成数组。说了这么多,一个最简单的测试方法就是直接用 array()看是否可以转换。
例子:
>>> x = np.array([2,3,1,0])
>>> x = np.array([2, 3, 1, 0])
>>> x = np.array([[1,2.0],[0,0],(1+1j,3.)]) # 列表和元组的混合
>>> x = np.array([[ 1.+0.j, 2.+0.j], [ 0.+0.j, 0.+0.j], [ 1.+1.j, 3.+0.j]])
2. 创建数组的内置函数
2.1 np.zeros( )
np.zeros( )创建一个指定维数的数组,且数组的值都是0。默认的数据类型是float64。
>>> np.zeros( (2,3) )
array( [[0,0,0],[0,0,0]])
2.2 np.ones()
np.ones( ) 创建的也是一个指定维数的数组,数组的值都是1.默认的数据类型是float64。
2.3 np.arange()
np.arange()所创建的数组中,他的值是递增的,以下是一些例子
>>> np.arange(10)
array([0,1,2,3,4,5,6,7,8,9])
>>> np,arange(2,10,dtype=float)
array([2.,3.,4.,5.,6.,7.,8.,9.])
>>> np,arange( 2,3,0.1)
array([2., 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9])
注意到np.arange()创建的数组不会包含最后一个数。即arange的范围为0道10时,创建的数组为0道9。
2.4 np.linspace()
np.linspace()创建元素中指定数字的数组。而且数组中的元素具有同样的间距,即是等差数组。与arange不同的是,他会包含结尾的数字。
>>> np.linspace(1., 4., 0.6)
>array([1., 1.6, 2.2, 2.8, 3.4, 4. ])