首页 > 其他分享 >002_Numoy索引和切片

002_Numoy索引和切片

时间:2024-04-05 15:55:05浏览次数:14  
标签:Numoy 索引 2D 002 visual 1D newaxis np array

定义可视化函数

import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
import math
from matplotlib import cm 
def visualize_2D(array, vmax, vmin):
    
    fig_width = math.ceil(array.shape[1] * 0.5)
    fig_length = math.ceil(array.shape[0] * 0.5)
    
    fig, ax = plt.subplots(figsize = (fig_width, fig_length))
    
    sns.heatmap(array,
               vmax = vmax,
               vmin = vmin,
               annot = True,
               fmt = '.0f',
               square = True,
               cmap = 'RdYlBu_r',
               linewidth = .5,
               cbar = False,
               xticklabels = False,
               yticklabels = False,
               ax = ax)

def visual_1D(array):
    fix, ax = plt.subplots()
    
    colors = cm.RdYlBu_r(np.linspace(0, 1, len(array)))
    
    for idx,num in enumerate(array):
        circle_idx = plt.Circle((idx, 0 ), 
                                0.5,
                               facecolor = colors[idx],
                               edgecolor = 'w')
        ax.add_patch(circle_idx)
        ax.text(idx, 0, s = str(array[idx]),
                horizontalalignment = 'center',
                verticalalignment = 'center'
               )
    ax.set_xlim(-0.6, 0.6 + len(array))
    ax.set_ylim(-0.6, 0.6)
    ax.axis('off')
    
    ax.set_aspect('equal', adjustable = 'box')

1.一维数组

索引 行向量、列向量、切片、整数索引、切片、布尔索引切片

a = np.arange(-5, 6)
visual_1D(a)

png

a.shape
(11,)
a[0],a[-11],a[10],a[-1]
(-5, -5, 5, 5)

行向量、列向量

升维 a[:,np.newaxis] 让数组当前增加一个维度
降维 np.squeeze() 用来给压缩数组shape为1的维度

visualize_2D(a[:,np.newaxis],5,-5)
a[:,np.newaxis]
array([[-5],
       [-4],
       [-3],
       [-2],
       [-1],
       [ 0],
       [ 1],
       [ 2],
       [ 3],
       [ 4],
       [ 5]])

png

visualize_2D(a[np.newaxis,:],5,-5)
a[np.newaxis,:]
array([[-5, -4, -3, -2, -1,  0,  1,  2,  3,  4,  5]])

png

a[np.newaxis,:].ndim
2
a[:,np.newaxis,np.newaxis].shape,np.squeeze(a[:,np.newaxis,np.newaxis]).ndim
((11, 1, 1), 1)

切片

visual_1D(a[0:3])

png

visual_1D(a[::2]) #奇数
visual_1D(a[1::2]) #偶数
visual_1D(a[::-1]) #倒序输出

png

png

png

整数索引

visual_1D(a[np.r_[0,1,2,-1]])

png

visual_1D(a[[0,1,2,-1]])

png

布尔索引、切片

visual_1D(a[a>0]) 
visual_1D(a[a<0])

png

png

2.二维数组

A_2D = np.array([[-7,-6,-5,-4,-3],
                 [-2,-1, 0, 1, 2],
                 [ 3, 4, 5, 6, 7]])
visualize_2D(A_2D, 7 , -8)

png

取出行

visualize_2D(A_2D[:1,:],7,-1)
visualize_2D(A_2D[2:3,:],7,-1)

png

png

取出列

visualize_2D(A_2D[:,:1],7,-7)  
visualize_2D(A_2D[:,2:],7,-7)

png

png

同时对行列进行操作

visualize_2D(A_2D[1:2,1:3],7,-7)

png

标签:Numoy,索引,2D,002,visual,1D,newaxis,np,array
From: https://www.cnblogs.com/baidh/p/18115823

相关文章

  • ElasticSearch 实战:ElasticSearch索引操作
    Elasticsearch实战:Elasticsearch索引操作在使用Elasticsearch进行数据管理时,索引操作是核心的一部分。本篇将详细介绍如何进行索引的创建、查看、更新(包括映射修改)、关闭与开启、删除等操作,以及如何进行索引模板设置以简化索引管理。**1.创建索引创建索引可以通过发......
  • 搜索引擎技术
    搜索引擎技术是互联网时代的核心技术之一,它致力于帮助用户从海量网络信息中快速准确地找到所需的内容。搜索引擎的工作原理大致可以分为以下几个关键步骤:信息抓取(WebCrawling/Spidering):搜索引擎会通过爬虫程序(Spider或Crawler)不断地在网络上漫游,通过跟踪链接从一个网页......
  • MySQL 索引详解
    为什么要使用索引?通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。可以大大加快数据的检索速度(大大减少的检索的数据量), 这也是创建索引的最主要的原因。帮助服务器避免排序和临时表。将随机IO变为顺序IO可以加速表和表之间的连接,特别是在实现数据的参考完整......
  • SAP 消息号 GLT2002 项目种类*****丢失(在科目***中是必须的)
    【背景】在做F-40汇票收付的时候,遇到以上error。【对应方法】先找到【为文档拆分给总分类账科目分类】点击进入。将原本分类03000改成04000,返回F-40即可成功过账。......
  • flutter_weixin索引条实现
     1、定义索引条List<String>side采用Stack,用Positioned将其位置调整到屏幕右侧2、将姓名经行排序,使用PinyinHelpertitlesList.sort((Stringa,Stringb){StringaPinyin=PinyinHelper.getFirstWordPinyin(a).toUpperCase();StringbPinyin=PinyinHel......
  • 洛谷p1002题解
    [NOIP2002普及组]过河卒题目描述棋盘上AAA点有一个过河卒,需要走到目标BB......
  • Poi2002滑雪者命名
    网络流#有源汇上下界费用流#最小点覆盖#Year2002#POI最小点覆盖问题这里可以直接有源汇上下界费用流//Author:xiaruize#ifndefONLINE_JUDGE#definedebug(x)cerr<<"OnLine:"<<__LINE__<<#x<<"="<<x<<endlboolstart_of_memory_u......
  • 洛谷p1002(过河卒)
    题目描述 如图,A点有一个过河卒,需要走到目标B点。卒行走规则:可以向下、或者向右。同时在棋盘上的任一点有一个对方的马(如上图的C点),该马所在的点和所有跳跃一步可达的点称为对方马的控制点。例如下图C点上的马可以控制9个点(图中的P1,P2…P8和C)。卒不能通过对方马的控......
  • 洛谷 P1196 [NOI2002] 银河英雄传说
    题意:30000列军队,每列初始有1个。编号从1~30000.每次操作有两种,将现在第i列所在的列合并到第j列所在列的末尾。或者查询第i列举例第j列的距离。思路:带权并查集。合并时将第i列头节点接到第j列头节点上。然后直接查询dist取绝对值相减就好。总结:一开始没看清题,以为要把从i列从当......
  • Java面试题:简述数据库性能优化的常见手段,如索引优化、SQL语句优化等。
    数据库性能优化是确保数据库系统高效运行的关键步骤。以下是一些常见的数据库性能优化手段:1.索引优化:创建索引:为经常用于查询条件的字段创建索引,可以大大加快查询速度。避免过多索引:虽然索引可以加快查询,但过多索引会减慢写操作,并占用额外空间。使用复合索引:当查询条件包......