首页 > 其他分享 >numpy - 数组的切片

numpy - 数组的切片

时间:2022-10-06 15:35:54浏览次数:44  
标签:182 arr 215 切片 246 数组 253 array numpy

导入数组的常用模块

import numpy as np
# 创建一个多维数组
arr = np.random.randint(0,100,size=(5,5))
arr

  在这里,我们创建了一个五行五列的二维数组

array([[10,  7, 83, 66,  5],
       [30, 12, 87,  2, 71],
       [75, 96, 36,  5, 62],
       [73, 25, 72, 22, 27],
       [ 2,  5, 52, 17, 93]])

我们先回忆一维数组的切片操作:

  一维数组的切片 arr[x : y :z] 

     x : 起始值,y : 结束值,z : 步长值  

多维数组的切片与之类似,不过多了一个操作列的参数

# 将数组的行倒置
arr[::-1]
array([[ 2,  5, 52, 17, 93],
       [73, 25, 72, 22, 27],
       [75, 96, 36,  5, 62],
       [30, 12, 87,  2, 71],
       [10,  7, 83, 66,  5]])

  

# 将数组的行和列倒置
arr[::-1,::-1]
array([[93, 17, 52,  5,  2],
       [27, 22, 72, 25, 73],
       [62,  5, 36, 96, 75],
       [71,  2, 87, 12, 30],
       [ 5, 66, 83,  7, 10]])

  

# 取出后三行(从第三行开始取)
arr[2::]
array([[75, 96, 36,  5, 62],
       [73, 25, 72, 22, 27],
       [ 2,  5, 52, 17, 93]])

  

# 取出前两行
arr[:2:]
array([[10,  7, 83, 66,  5],
       [30, 12, 87,  2, 71]])

  

# 取出 1 2 5 行
arr[::2]
array([[10,  7, 83, 66,  5],
       [75, 96, 36,  5, 62],
       [ 2,  5, 52, 17, 93]])

  

# 取出后三列(从第三列开始取)
arr[::,2::]
array([[83, 66,  5],
       [87,  2, 71],
       [36,  5, 62],
       [72, 22, 27],
       [52, 17, 93]])

  

# 取出后两列
arr[::,:2:]
array([[10,  7],
       [30, 12],
       [75, 96],
       [73, 25],
       [ 2,  5]])

  

# 取出 1 3 5 列
arr[::,::2]
array([[10, 83,  5],
       [30, 87, 71],
       [75, 36, 62],
       [73, 72, 27],
       [ 2, 52, 93]])

 这里展示一个数组切片的小应用案例

import matplotlib.pyplot as plt
# 读取本地图片的二进制数据
imgData = plt.imread('E:/pandas/imges/bg.jpg')
imgData
array([[[187, 218, 247],
        [187, 218, 247],
        [187, 218, 247],
        ...,
        [187, 218, 247],
        [187, 218, 247],
        [187, 218, 247]],

       [[182, 215, 246],
        [182, 215, 246],
        [182, 215, 246],
        ...,
        [182, 215, 246],
        [182, 215, 246],
        [182, 215, 246]],

       [[182, 215, 246],
        [182, 215, 246],
        [182, 215, 246],
        ...,
        [182, 215, 246],
        [182, 215, 246],
        [182, 215, 246]],

       ...,

       [[253, 253, 253],
        [253, 253, 253],
        [253, 253, 253],
        ...,
        [253, 253, 253],
        [253, 253, 253],
        [252, 252, 252]],

       [[253, 253, 253],
        [253, 253, 253],
        [253, 253, 253],
        ...,
        [253, 253, 253],
        [253, 253, 253],
        [252, 252, 252]],

       [[253, 253, 253],
        [253, 253, 253],
        [253, 253, 253],
        ...,
        [253, 253, 253],
        [253, 253, 253],
        [252, 252, 252]]], dtype=uint8)

 不难看出,读取的数据是存放在一个二维数组里面的

# 图片二进制数据展示
plt.imshow(imgData)

 

 

# 数组切片操作可以对图片进行剪切操作
plt.imshow(imgData[:300:])

 

 

  还可完成的操作有 图片的反转,倒置,放大,缩小等,这里就不做相应演示了

标签:182,arr,215,切片,246,数组,253,array,numpy
From: https://www.cnblogs.com/atbktyws/p/16757643.html

相关文章

  • 数组和广义表
    n维数组和抽象数据类型ADTArray{数据对象:数据关系:基本操作:(1)InitArray(&A,n,bound1,。。。。,bound2)(2)Destroy(&A)(3)Value(A,&e,index1,。。。,indexn)取值(4)Assign(A,&e,index1,。。。......
  • 1.6 数据结构_列表 lst[index],lst.append(obj),lst[index]=obj,lst.remove(obj),for...i
    #列表的数据处理  #1.获取元素:lst[index]  #2.新增元素:lst.append(obj) #3.修改元素:lst[index]=obj #4.删除元素:lst.remove(obj) #5.列表元素很多批......
  • 如何将一个 JavaScript 数组打乱顺序
    当我们想将现有的数组打乱顺序,有两个方法:1.Array.prototype.sort()数组的sort()方法用原地算法对数组的元素进行排序,并返回数组。默认排序顺序是在将元素转换为字符串......
  • 1098. 城堡问题 flood fill算法 注意:第x行第y列对应的坐标为 (y,x) 与坐标为(x,y)
      1234567#############################1#|#|#||######---#####---#---#####---#2##|......
  • 【排序】349. 两个数组的交集
    链接:https://leetcode.cn/problems/intersection-of-two-arrays/描述:  思路:这道题简直太明显了...直接丢到集合里,求交集就行了。注意python的求交集可以直接用&符号......
  • 7.字符串与字符数组
    字符串与字符数组字符数组定义chararray[100];字符数组初始化chararray[100]={'a','b','c','d'};chararray[100]="abcd";chararray[100]={0};chararray[]......
  • 树状数组-归并排序-逆序对-2426. 满足不等式的数对数目
    问题描述给你两个下标从0 开始的整数数组 nums1和 nums2 ,两个数组的大小都为 n ,同时给你一个整数 diff ,统计满足以下条件的 数对 (i,j) :0<=i<j<=n-......
  • 重排字符串数组
    /*给定一系列长度相等的字符串,请对字符串进行重排,使得相邻的2个字符串之间仅有一个字符差异,请输出重排后的结果:如果有多个解,则输出字典序的最小的解。如果无解,则输出字符......
  • 数组和函数
     数组1.概念:相同类型的若干变量按有序的形式组织起来,这些按序排列的同类数据元素的集合称为数组。(具有相同数据类型)2.定义:基本格式:数据类型数组名[数组大小]3.数组......
  • 多维数组
    多维数组是否存在多维数组不存在因为内存是线性一维的n维数组可以当作每个元素是n-1维数组的一维数组1inta[3][4];//该数字是含有3个元素的一维数组......