[python随笔]python数组切片操作


python的数组切片操作很强大,但有些细节老是忘,故写一点东西记录下来。

在python&numpy中切片(slice)

对于一维数组来说,python的list和numpy的array切片操作都是相似的。无非记住

arr[start:end:step]

即可

下面是几个特殊的例子

  • [:]表示复制源列表
  • 负的index表示,从后往前。-1表示最后一个元素。

相对于一维数组而言,二维(多维)数组用的会更多。一般语法是arr_name[行操作, 列操作]
先随机产生一个3*4的数组

in:arr = np.arange(12).reshape((3, 4))
out:
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])

取行数据

arr[i, :] #取第i行数据
arr[i:j, :] #取第i行到第j行的数据

取列数据(注意数据格式)

in:arr[:,0] # 取第0列的数据,以行的形式返回的
out:
array([0, 4, 8])
 
in:arr[:,:1] # 取第0列的数据,以列的形式返回的
out:
array([[0],
       [4],
       [8]])

取一个数据块

取第一维的索引1到索引2之间的元素,也就是第二行
取第二维的索引1到索引3之间的元素,也就是第二列和第三列

in:arr[1:2, 1:3] 
 
out: 
array([[5, 6]])

取第一维的全部
按步长为2取第二维的索引0到末尾之间的元素,也就是第一列和第三列

in: arr[:, ::2]
 
out: 
array([[ 0,  2],
       [ 4,  6],
       [ 8, 10]])

补充:数组里的-1代表倒序,而reshape里的-1代表未知!!!!!

一个数组a=[0,1,2,3,4],a[-1]表示数组中最后一位,a[:-1]表示从第0位开始直到最后一位,a[::-1]表示倒序,从最后一位到第0位。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM