多维数组对象ndarray
ndarray是一个快速灵活的大数据及容器,可以利用这种数组进行数学运算。
在ndarray中,所有的元素必须是相同类型的,每个数组都有一个shape(返回一个表示维度
大小的元祖)和一个dtype(返回数组数据类型)
一、创建ndarray的方法
1.array函数
In [1]: data1 = [1.1,2.2,3.3,4.4]
In [2]: import numpy as np
In [3]: data1 = [1.1,2.2,3.3,4.4]
In [4]: arr1 = np.array(data1)
In [5]: arr1
Out[5]: array([1.1, 2.2, 3.3, 4.4])
In [6]: data2 = [[1.1,2.2,3.3,4.4],[5.5,6.6,7.7,8.8]]
In [7]: arr2 = np.array(data2)
In [8]: arr2
Out[8]:
array([[1.1, 2.2, 3.3, 4.4],
[5.5, 6.6, 7.7, 8.8]])
In [9]: arr2.shape
Out[9]: (2, 4)
In [10]: arr2.dtype
Out[10]: dtype('float64')
2.zeros函数
In [13]: np.zeros(10)
Out[13]: array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])
In [14]: np.zeros((3,4))
Out[14]:
array([[0., 0., 0., 0.],
[0., 0., 0., 0.],
[0., 0., 0., 0.]])
3.empty函数
注:empty函数有时会返回全是0的数组,有时是一些垃圾值
In [22]: np.empty((2,4,2))
Out[22]:
array([[[7.82430548e-271, 5.53636626e+127],
[1.06399927e+248, 7.12303566e+149],
[8.82893851e+199, 3.63152519e+088],
[6.15962525e-242, 9.09607585e+223]],
[[1.59192433e-308, 9.99960087e+073],
[6.37179567e+020, 1.71936412e+045],
[5.85859283e+078, 1.80821729e+045],
[1.30843769e+127, 3.19452254e+006]]])
4.arange函数
numpy中的arange函数和Python内置函数range()一模一样,用法也是。
In [41]: np.arange(15)
Out[41]: array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14])
二、ndarray的数据类型
1.dtype
1.int转为float
In [44]: arr1 = np.array([1,2,3,4,5],dtype = np.float64)
In [45]: arr1
Out[45]: array([1., 2., 3., 4., 5.])
2.float转为int
注:数组类型是小数,转换为float时会去掉小数部分。
In [46]: arr2 = np.array([1.1,2.2,3.3,4.4,5.5],dtype = np.int64)
In [47]: arr2
Out[47]: array([1, 2, 3, 4, 5], dtype=int64)
3.string_转为数字类型
In [52]: arr3 = np.array(['1.2','3.5','5.4'],dtype = np.string_)
In [53]: n_arr3 = arr3.astype(np.float64)
In [54]: n_arr3
Out[54]: array([1.2, 3.5, 5.4])
三、数组之间的运算
In [57]: arr = np.array([[1.,2.,3.],[4.,5.,6.]],dtype = np.float64)
In [58]: arr
Out[58]:
array([[1., 2., 3.],
[4., 5., 6.]])
In [59]: arr + arr
Out[59]:
array([[ 2., 4., 6.],
[ 8., 10., 12.]])
In [60]: arr * arr
Out[60]:
array([[ 1., 4., 9.],
[16., 25., 36.]])
In [61]: 1 / arr
Out[61]:
array([[1. , 0.5 , 0.33333333],
[0.25 , 0.2 , 0.16666667]])
In [62]: arr ** 2
Out[62]:
array([[ 1., 4., 9.],
[16., 25., 36.]])
不同大小的数组运算叫做broadcasting,看后面的笔记