这周因为考科三耽误了学习,希望能借元旦假期赶上进度。
列表:数据类型可以不同 e.g. 3.14, ‘pi’,’3.141’,[3.141,3.14]
数组:数据类型相同 e.g. 3.14,3.141,3.134,3.12
Numpy是一个开源的python科学计算基础库,ndarray是其一个强大的N维数据对象
Python已经有了列表类型,为什么还需要一个数组对象呢?
举个例子,现在有AB两个一维数组,要计算A^2+B^3,如果直接计算的话,我们元素间需要使用循环运算for i in range(len(a)),但是用numpy的ndarray的话不需要使用循环,使一维数据更像单个数据,可以直接计算。
ndarray数组一般要求所有元素类型相同,数组下标从0开始。
np.array()生成一个ndarray,ndarray的别名是array
np.array()输出成[]形式,元素由空格分割
ndarray对象的属性如下:
属性的使用如下:
例如对于 a=np.array([[0,1,2,3,4],
[5,6,7,8,9]])
a.ndim==>2
a.shape==>(2,5)
a.size==>10
a.dtype==>dtype(‘int32’)
a.itemsize==>4
如果是非同质的ndarray对象
例如x=np.array([[0,1,2,3,4],
[5,6,7,8]])
x.shape==>(2,)
x.dtype==>dtype(‘0’)
x.itemsize==>4
x.size==>2
非同质ndarray对象无法发挥Numpy的优势,应该尽量避免使用
ndarray的创建方法1.从python中的列表,元组等类型创建
2.使用Numpy中函数创建,如:arange,ones,zeros等
一维数组的索引和切片与python的列表类似
e.g.a=np.array([9,8,7,6,5])
a[2]==>7
a[1:4:2]==>([8,6])
多维数组的索引,每个维度一个索引值,逗号分割
e.g.a=np.arrage(24).reshape((2,3,4))
a==>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]]])
a[1,2,3]==>23
a[0,1,2]==>6
a[-1,-2,-3]==>17
未完待续
(没有电脑实在不方便,其他内容和代码晚点再附上吧~)
网友评论