Numpy基础
-------------------------------------------------------------------创建数组
操作系统:windows7+Anaconda3+python3.6
Numpy是python中的一个数据库。可以使我们在python中进行向量和矩阵计算。
Numpy包的核心是ndarray对象。
Numpy数组 和 标准Python Array(数组) 之间的区别:
- Numpy数组在创建时具有固定的大小,与Python的原生数组对象(可以动态增长)不同。 更改ndarray的大小将创建一个新数组并删除原来的数组。
- Numpy数组中的元素都需要具有相同的数据类型,因此在内存中的大小相同。
- 若Python的原生数组里包含了Numpy的对象,可以有不同大小元素的数组。
1.创建一个数组有多种方式
Python 3.6.5 |Anaconda, Inc.| (default, Mar 29 2018, 13:32:41) [MSC v.1900 64 bit (AMD64)] on win32
将序列(参数)传递给NumPy的array()函数; 传递的参数,可以是任意数据类型,不仅仅是列表(list)数据类型。
# 第一种
In[1]: import numpy as np
In[2]: a = np.array([0,1,2,3])
In[3]: a
array([0, 1, 2, 3])
In[5]: print(a)
[0 1 2 3]
# 第二种
In[6]: b = np.array((0,1,2,3,4))
In[7]: b
array([0, 1, 2, 3, 4])
In[9]: print(b)
[0 1 2 3 4]
# 第三种
In[10]: c = np.arange(4)
In[11]: c
array([0, 1, 2, 3])
In[10]: print(c)
[0 1 2 3]
# 第四种
In[10]: d = np.linspace(0,np.pi,3,1)
In[10]: d
array([0. , 1.57079633, 3.14159265])
In[10]: print(d)
[0. 1.57079633 3.14159265]
2.创建N维数组的函数
-
创建一个5行5列的数值为浮点1的矩阵
In[2]: import numpy as np In[2]: np.ones([5, 5]) Out[4]: 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., 1.]])
-
创建5行5列的数值为浮点0的矩阵
In[2]: import numpy as np In[2]: np.zeros([5, 5]) OuIn[2]: t[5]: 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., 0.]])
-
创建一个指定 行、列 的数组 默认值是0或者正无穷或负无穷
In[2]: import numpy as np In[3]: np.empty((3,4)) Out[3]: array([[1.83e-322, 0.00e+000, 0.00e+000, 0.00e+000], [0.00e+000, 0.00e+000, 0.00e+000, 0.00e+000], [0.00e+000, 0.00e+000, 0.00e+000, 0.00e+000]])
3.Numpy 查看数组的属性
In[2]: a = [1,9,5,2,0,4]
In[2]: b = np.array(a)
In[2]: b
Out[8]: array([1, 9, 5, 2, 0, 4])
In[2]: b.size # 查看数组元素个数
Out[9]: 6
In[2]: b.shape # 查看数组形状
Out[10]: (6,)
In[2]: b.ndim # 查看数组维度
Out[11]: 1
In[2]: b.dtype # 查看数组元素类型
Out[12]: dtype('int32')
4.print数组(矩阵)
一维数组被打印为行、二维为矩阵和三维为矩阵列表
In[2]: a = np.arange(6) # 一维数组
In[2]: a
Out[14]: array([0, 1, 2, 3, 4, 5])
In[2]: b = np.arange(12).reshape(4,3) # 二维数组
In[2]: b
Out[16]
array([[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8],
[ 9, 10, 11]])
In[2]: c = np.arange(24).reshape(2,3,4) #三维数组
In[2]: c
Out[18]:
array([[[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]],
[[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]]])