初识NumPy,有了想进一步了解NumPy的兴趣
前言
初识NumPy后,激发了学习使用NumPy的兴趣。这里先了解更多的基础知识,“基础不牢,地动山摇”, 为后续更深入的学习使用NumPy做些准备。
一、谈数组
在计算机编程中,数组是一种用来存取数据的结构。我们可以把它想象成空间中一个个网格.
一维数组就像一列表
二维数组就像一张表
三(多)维数组就是一叠表
在NumPy中,最基本的数组类叫做ndarray,代表“N-dimensional array".
二、说创建
1.通过list,tuple创建
可以使用Python中的list(列表)或者tuple(元组)配合NumPy的array方法对数组进行初始化并完成数组的创建。
aa = np.array((1,2,3,4)) # 通过元组创建数组, (打印数组的结果是[1 2 3 4],dtype是int32 )
bb = np.array([1,2,3,4], dtype = np.int16) # 通过列表创建数组,创建时指定元素数据类型 (打印数组的结果是[1 2 3 4])
同Python中列表(list)一样,数组也支持切片,只不过列表(list)的切片会将元素复制到一个新的列表中,而对NumPy数组切片只是返回原数组元素的引用(原文是view,我翻译为镜像),改变View的值也会同时改变原数组的值!
xx = aa[:3] # (打印数组xx的结果是[1 2 3 ],dtype是int32 ) xx[0] # (xx[0] 的结果是1 ) xx[0] = 5 # 给xx[0]赋值为5后,再打印aa,的结果是[5 2 3 4 ] !!
2.通过方法创建
如【初见】中提到的,可以用np.zeros(), np.ones(), np.empty(), np.arange(), np.linspace()等方法来创建数组。
在NumPy中,将数组的维度称作轴(英文axis),例如如下代码中的gg,它的形状是3x4, 但它是2轴(axes,英文axis的复数)的数组,它可以表示存在4维空间中的3组点。
cc = np.ones((1,2)) # 通过内置方法直接创建数组,默认的元素数据类型时float64 。 (打印数组结果是[[1. 1.]])
dd = np.linspace(1,9,9) # 从1开始到9,等分为9个元素(打印数组结果是[ 1. 2. 3. 4. 5. 6. 7. 8. 9. ])
gg = (np.arange(1,13,1).reshape(3,4)) # 从1开始到13,以1为增长间隔生成数组元素,再将生成的一维数组变形为形状为3x4的数组(打印数组结果如下)
# [[ 1, 2, 3, 4],
# [ 5, 6, 7, 8],
# [ 9, 10, 11, 12]]
三、聊改变
待写....