Python数据分析(2)----------Numpy(ndarray)数组的基本操作1

上回谈到 Numpy数组创建与数组属性 感觉怎么样?其实我这一系列数据分析,是我学习python数据分析的一个笔记,也就是说,如果大家想自学数据分析,可以跟着我的博客来一起学习,可能更新有点慢,但是我尽量赶时间,在数据清洗结束后我会整理一个目录,供大家参考

今天我们分享一下ndarray的基本操作

1.索引

索引是类似于列表下标的一个东西,很easy

一维数组与列表完全一致 多维时同理

一维数组

#创建一个arr1数组,根据下标访问元素
arr1 = np.random.randint(0,10,size=10)
arr1[0],arr[-1]

Python数据分析(2)----------Numpy(ndarray)数组的基本操作1_第1张图片
访问读个元素咋整呢?

#可以使用多个索引,同时获取多个元素组成的子数组
arr1[[1,2]]

这里不上图了,但是要注意,要以列表的方式访问哦

高维数组

# 创建一个高维数组
arr2 = np.random.randint(0,100,size=(3,4))
arr2

Python数据分析(2)----------Numpy(ndarray)数组的基本操作1_第2张图片
我们可以先想一下,高维数组,想访问一个元素,可不可以跟高维列表一样呢?
当然可以homie!!
但是一般不这样?
别问为啥,帅的人都不这样,直接上代码

# 传统的python访问方式
arr2[0][0]

# numpy访问方式,来表达多维数组在各个轴上的取值位置
arr2[0,0]

# 最后一个数
arr2[-1,-1]

似乎这样访问更便捷了有没有

2.切片

一维与列表完全一致 多维时同理

# 普通切片,左闭右开区间
arr1[2:5]

# 从头切到尾,隔两个一切
arr1[::2]

#从下标2切到下标8,隔3个一切
arr1[2:8:3]

高维数组的切片

# 先用[0]将二维数组变为一维数组,再切,但是尽量别用
arr2[0:1][0][0:2]

# 同时在两个维度上切片,先0:1切,再在结果上0:2切
arr2[0:1,0:2]

# 行切片
arr2[0:2]

# 列切片
arr2[:,0:2]

发现不对劲是吗?

行切片就切就完事了,但是!列切片必须要先把行给搞定,所以,如果想行不动,那就给加个:,要么会报错!哦不,会当成列切片来切哈哈哈

3.变形

想想arr2这个3行4列的数组,能不能变变形状?

# 还记得shape属性吗?
arr2.shape
arr2.reshape(2,6)

Python数据分析(2)----------Numpy(ndarray)数组的基本操作1_第3张图片
以后我们在数据清洗的时候,或者机器学习的时候会经常用这个操作

什么?你想reshape成(2,5)?
别忘了,形状可以变,内容不能缺啊,25=34吗?

个数在变形前后一定要保持一致

今天就先这样,下一次我们将来分享级联、切分和副本

你可能感兴趣的:(python,机器学习,数据分析,numpy,Numpy基础)