前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >初探numpy——切片和索引

初探numpy——切片和索引

作者头像
LRainner
发布2020-07-15 15:40:07
5010
发布2020-07-15 15:40:07
举报
文章被收录于专栏:安全学习笔记

切片

代码语言:javascript
复制
import numpy as np

# 使用切片参数start:stop:step来进行切片操作
a_array=np.arange(10)
print(a_array,'\n')

b_array=a_array[1:10:2]
print(b_array,'\n')

c_array=a_array[2:]
print(c_array,'\n')

d_array=a_array[:5]
print(d_array)
代码语言:javascript
复制
[0 1 2 3 4 5 6 7 8 9]

[1 3 5 7 9]

[2 3 4 5 6 7 8 9]

[0 1 2 3 4]
代码语言:javascript
复制
# 多维数组切片操作

a_array=np.array([[1,2,3],[4,5,6],[7,8,9]])
print(a_array,'\n')

# 从a_array[n:]开始切割
print(a_array[1:],'\n')

# 第n列元素
print(a_array[...,0],'\n')

# 第n行元素
print(a_array[1,...],'\n')

# 第n列及剩下的所有元素
print(a_array[...,1:],'\n')

# 第n行及剩下的所有元素
print(a_array[1:,...])
代码语言:javascript
复制
[[1 2 3]
 [4 5 6]
 [7 8 9]]

[[4 5 6]
 [7 8 9]]

[1 4 7]

[4 5 6]

[[2 3]
 [5 6]
 [8 9]]

[[4 5 6]
 [7 8 9]]

numpy高级索引

代码语言:javascript
复制
# 整数数组索引

array=np.array([[1,2,3],[4,5,6],[7,8,9]])
print(array,'\n')

#获取(0,0),(1,1),(2,2)处的元素
print(array[[0,1,2],[0,1,2]],'\n')

#获取(0,0),(0,2),(2,0),(2,2)处的元素
print(array[np.array([[0,0],[2,2]]),np.array([[0,2],[0,2]])])
代码语言:javascript
复制
[[1 2 3]
 [4 5 6]
 [7 8 9]]

[1 5 9]

[[1 3]
 [7 9]]
代码语言:javascript
复制
# 切片

array=np.array([[1,2,3],[4,5,6],[7,8,9]])
print(array,'\n')

print(array[0:2,0:2],'\n')

print(array[...,0:2])
代码语言:javascript
复制
[[1 2 3]
 [4 5 6]
 [7 8 9]]

[[1 2]
 [4 5]]

[[1 2]
 [4 5]
 [7 8]]
代码语言:javascript
复制
# 布尔索引

array=np.array([[1,2,3],[4,5,6],[7,8,9]])
print(array,'\n')

#获取大于3的元素
print(array[array>3])
代码语言:javascript
复制
[[1 2 3]
 [4 5 6]
 [7 8 9]]

[4 5 6 7 8 9]
代码语言:javascript
复制
# 花式索引

array=np.arange(25).reshape(5,5)
print(array,'\n')

#获取第1,2,3行元素
print(array[[1,2,3]],'\n')

#获取后三行元素
print(array[[-1,-2,-3]])
代码语言:javascript
复制
[[ 0  1  2  3  4]
 [ 5  6  7  8  9]
 [10 11 12 13 14]
 [15 16 17 18 19]
 [20 21 22 23 24]]

[[ 5  6  7  8  9]
 [10 11 12 13 14]
 [15 16 17 18 19]]

[[20 21 22 23 24]
 [15 16 17 18 19]
 [10 11 12 13 14]]
代码语言:javascript
复制
# 还是花式索引

array=np.arange(25).reshape(5,5)
print(array,'\n')

# 先选取行,再将列排序
print(array[[2,1,3]][:,[2,3,1,4,0]],'\n')

# 用numpy.ix_()函数,输入两个数组,产生笛卡尔积的映射关系
print(array[np.ix_([2,1,3],[2,3,1,4,0])])
代码语言:javascript
复制
[[ 0  1  2  3  4]
 [ 5  6  7  8  9]
 [10 11 12 13 14]
 [15 16 17 18 19]
 [20 21 22 23 24]]

[[12 13 11 14 10]
 [ 7  8  6  9  5]
 [17 18 16 19 15]]

[[12 13 11 14 10]
 [ 7  8  6  9  5]
 [17 18 16 19 15]]
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小白也编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 切片
  • numpy高级索引
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档