码迷,mamicode.com
首页 > 其他好文 > 详细

创建ndarray

时间:2017-11-20 20:16:02      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:存在   sha   除了   2.3   指定   函数   另一个   相同   元祖   

Numpy最重要的一个特点就是其N维数组对象(即ndarray),该对象是一个快速而灵活的大数据集容器,是一个通用的同构数据多维容器,也就是说,其中的所有元素必须是相同类型的。

创建数组最简单的方法就是array函数,它接受一切序列型的对象(包括其他数组),然后产生一个新的含有传入数据的Numpy数组。

以一个列表为例:

1 In [2]: import numpy as np
2 
3 In [3]: simple = [1,2.3,4,5]
4 
5 In [4]: arr = np.array(simple)
6 
7 In [5]: arr  
8 Out[5]: array([ 1. ,  2.3,  4. ,  5. ])

嵌套序列(比如由一组等长列表组成的列表)将会被转换为一个多维数组:

 1 In [6]: simple1 = [[1,2,3,4],[5,6,7,8]]
 2 
 3 In [7]: arr1 = np.array(simple1)
 4 
 5 In [8]: arr1
 6 Out[8]: 
 7 array([[1, 2, 3, 4],
 8        [5, 6, 7, 8]])
 9 
10 In [9]: arr1.ndim  获得数组的维数
11 Out[9]: 2
12 
13 In [10]: arr1.shape
14 Out[10]: (2, 4)

除非显示说明,np.array会尝试为新建的数组推断出一个较为合适的数据类型,数据类型保存在一个特殊的dtype对象中。

1 In [12]: arr.dtype
2 Out[12]: dtype(float64)
3 
4 In [13]: arr1.dtype
5 Out[13]: dtype(int64)

除了np.array之外,还有一些函数也可以新建数组。比如zeros和ones分别可以创建指定长度或形状的全0或全1数组。empty可以创建一个没有任何具体值的数组。要用这些方法创建多维数组,只需传入一个表示形状的元祖即可。

 1 In [14]: np.zeros(10)
 2 Out[14]: array([ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.])
 3 
 4 In [15]: np.ones(10)
 5 Out[15]: array([ 1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.])
 6 
 7 In [16]: np.empty((2,3))
 8 Out[16]: 
 9 array([[  0.00000000e+000,   8.20622089e-317,   4.65914971e-317],
10        [  6.90846568e-310,   6.90847131e-310,   1.25836781e-316]])

arange是Python内置函数range的数组版

1 In [17]: np.arange(10)
2 Out[17]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

数组创建函数

函数 说明
array 将输入数据(列表、元祖、数组或其他序列类型)转换为ndarray
asarray  将输入转换为ndarray,如果输入本身就是一个ndarray就不进行复制
arange 类似于内置的range,但返回的是一个ndarray而不是列表
ones、ones_like 根据指定的形状和dtype创建一个全1数组。ones_like以另一个数组为参数,并根据其形状和dtype创建一个全1数组
zeros、zeros_like 类似于ones和ones_like,只不过产生的是全0数组而已
empty、empty_like 创建新数组,只分配内存空间但不填充任何值
eye、identity     创建一个正方的NxN单位矩阵(对角线为1,其余为0)

 

创建ndarray

标签:存在   sha   除了   2.3   指定   函数   另一个   相同   元祖   

原文地址:http://www.cnblogs.com/yu-1104/p/7867800.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!