首页 > 编程语言 > 详细

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

时间:2020-11-13 00:36:14      阅读:32      评论:0      收藏:0      [点我收藏+]

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代表未知!!!!!

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

原文:https://www.cnblogs.com/saku/p/13967117.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!