numpy 学习汇总45 - 数组选择设置(11种方法)( 初步学习 tcy)

2024-03-20 09:48

本文主要是介绍numpy 学习汇总45 - 数组选择设置(11种方法)( 初步学习 tcy),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

选择设置  2018/6/24     2018/11/30=============================================================================
1.函数np.s_[:]                                       #数组索引
np.index_exp[2::2]                             #建立数组索引元组的更好方法a.item(* args) 复制元素到python标量# 参数:None:len(a)=1; Int_type:数组平面索引;Int_types:元祖
a.itemset(* args)更改数组中数值       # 参数:参数1int 或元祖,位置(x,[y]);参数2更改值
a.getfield(dtype,offset = 0 )        #以给定类型返回给定数组的字段。np.take(a,indices,axis = None,out = None,mode ='raise' )# 获取(默认1D )元素;优于花式索引
np.put(a,ind,v,mode ='raise' )                          # 设置1D元素;等价a.flat[ind] = vnp.nonzero(a)                                           #返回输入数组中非零元素的索引。np.select(condlist, choicelist, default=0)             #返回从选择列表中的元素绘制的数组,取决于条件
np.choose(a,choice,out = None,mode ='raise' )#根据条件选择
np.where(condition, [x, y])                  #返回输入数组中满足给定条件的元素的索引。
np.extract()                                 #根据某个条件从数组中抽取元素,返回满条件元素np.compress(condition,axis = None,out = None )# 沿给定的轴返回此数组的选定切片=============================================================================
2.实例# 实例1:np.s_-数组索引
np.s_[2::2]                                 #slice(2, None, 2)
np.index_exp[2::2]                          #(slice(2, None, 2),)
np.array([0, 1, 2, 3, 4])[np.s_[2::2]]      # array([2, 4])
np.array([0, 1, 2, 3, 4])[np.index_exp[2::2]] #array([2, 4])# 实例2:item-获取标量
a=np.arange(12).reshape(3,4)
a.item(7)                #7     获取标量
a.item(0,2,)             #2     获取标量    等价a.item((0,2))# 实例3:itemset-设置标量
a.itemset(7,-7)          #修改元素为-7
a                        #array([[ 0,  1,  2,  3],[ 4,  5,  6, -7],[ 8,  9, 10, 11]])
a.itemset((0,2),-2)      #修改元素为-2
a                        #array([[ 0,  1, -2,  3], [ 4,  5,  6, -7],[ 8,  9, 10, 11]])# 实例3:getfield-获取数值字段
x = np.diag([1.+1.j]*2)
x[1, 1] = 2 + 4.j
x                                    # array([[ 1.+1.j,  0.+0.j],[ 0.+0.j,  2.+4.j]])
x.getfield(np.float64)               # array([[ 1.,  0.], [ 0.,  2.]])# 选择8字节偏移量得到虚部视图
x.getfield(np.float64, offset=8)# array([[ 1.,  0.], [ 0.,  4.]])=============================================================================
# 实例4:take-选取元素
a = np.array([10, 11, 12, 13, 14, 15])np.take(a, [0,1,2,3])          # array([10, 11, 12, 13])
np.take(a, [[0, 1], [2, 3]])   # array([[10, 11],[12, 13]])a=np.arange(10,22).reshape(3,4)
np.take(a,[0,1,2,3])           # array([10, 11, 12, 13])
np.take(a,[[0,1],[2,3]])       # array([[10, 11], [12, 13]])a.take([1,2],axis=0)           # array([[14, 15, 16, 17],[18, 19, 20, 21]])    #选取第2,3行
a.take([1,2],axis=1)           # array([[11, 12],[15, 16], [19, 20]])          #选取第2,3列#实例5:put-替换选定位置数据
a = np.arange(5)
a.put([1,2],-1)                            #将选定的元素用-1替
a                                          #array([ 0, -1, -1,  3,  4])np.put(a, [4,3,2,1], [-4,-3,-2,-1 ])#选定元素用list替换
a                                   #array([ 0, -1, -2, -3, -4])# 实例6:nonzero-非零元素索引
np.nonzero ([3,0,2,5,0,6])# (array([0, 2, 3, 5], dtype=int64),)
a = np.array([[3,4,0],[0,2,1],[5,0,6]])
b=np.nonzero (a)            # (array([0, 0, 1, 1, 2, 2], dtype=int64),array([0, 1, 1, 2, 0, 2], dtype=int64))
np.transpose(b)             # array([[0, 0], [0, 1], [1, 1],[1, 2],[2, 0],[2, 2]], dtype=int64)
a[b]                        # array([3, 4, 2, 1, 5, 6])# 一个常用用法是查找条件为True数组的索引
a = np.array([[1,2,3],[4,5,6]])
a > 3                       # array([[False, False, False],[ True, True, True]])
np.nonzero(a > 3)           # 结果同下
(a > 3).nonzero()           # (array([1, 1, 1], dtype=int64), array([0, 1, 2], dtype=int64))np.count_nonzero(a,axis = None )# 计算数组中非零值的数量a。
np.count_nonzero(a)=============================================================================
# 实例7:select-根据条件选择相应的值
x = np.arange(10)
condlist = [x<3, x>5]
choicelist = [x, x**2]
np.select(condlist, choicelist)    # array([ 0,  1,  2,  0,  0,  0, 36, 49, 64, 81])
np.select(condlist, choicelist,-1) # array([ 0,  1,  2, -1, -1, -1, 36, 49, 64, 81])# 实例8:choose-根据条件选择
result=np.array([0,0,0,0])
a=np.choose([0,0,1,2],[0,-1,-2,-3,-4],out=result)        #a为1维,choices为1维
a   # array([ 0,  0, -1, -2])   result==ab=np.choose([[0,1,2],[3,4,5],[5,4,3]],[0,-1,-2,-3,-4,-5])#a为2维,choices为1维
b   # array([[ 0, -1, -2],[-3, -4, -5],[-5, -4, -3]])c=np.choose([4,3,2,1,0],                                 #a为1维,choices为2维[[0,-1,-2,-3,-4],[10,11,12,13,14],[20,21,22,23,24],[30,31,32,33,34],[40,41,42,43,44]])
c   # array([40, 31, 22, 13, -4])    4---0 对应choices(4,0) (3,1) (2,2) (1,3) (0,4)d=np.choose([[4,3,2,1,0],[0,1,2,3,4],[0,1,2,3,4]],        #a为2维,choices为2维[[0,-1,-2,-3,-4],[10,11,12,13,14],[20,21,22,23,24],[30,31,32,33,34],[40,41,42,43,44]])
d   # array([[40, 31, 22, 13, -4], [ 0, 11, 22, 33, 44],[ 0, 11, 22, 33, 44]])# 实例9:where-根据条件选择
x = np.arange(9).reshape(3,  3)
y = np.where(x >  3)# (array([1, 1, 2, 2, 2], dtype=int64), array([1, 2, 0, 1, 2], dtype=int64))
x[y]                #array([4, 5, 6, 7, 8])# 实例10:where-根据条件选择
x = np.arange(9.).reshape(3,  3)
condition = np.mod(x,2) == 0# 定义条件, 选择偶数元素
condition                   # array([[True,False,True],[False,True,False],[True,False,True]])
np.extract(condition, x)    # array([0., 2., 4., 6., 8.])   # 使用条件提取元素============================================================================
# 实例11:compress-沿轴返回此数组选定切片np.compress(condition,axis = None,out = None )# 沿给定的轴返回此数组的选定切片a = np.array([[1, 2], [3, 4], [5, 6]])
b1=np.compress([1, 1,0], a, axis=0)  # 按行选取,前为逻辑条件,选取第1,2行
b2=np.compress([4, True], a, axis=1) # 按列选取,前为逻辑条件,表示选取第1,2列#在平面阵列上工作时不会沿着轴返回切片,而是选择元素。
b3=np.compress([2, True,0,1,4], a)# 条件为真时选一个元素;逻辑条件最多6个b1= [[1 2][3 4][5 6]]
b2= [[1 2][3 4][5 6]]
b3= [1 2 4 5]=============================================================================
3.备注:
np.choose(a,choice,out = None,mode ='raise' )#根据条件选择# 参数
# a :int       #数组元素0~n-1
# choices:  #要操作数组,维度和a匹配
# out:        #接收运算结果维度和 a 一样
# mode:#raise默认,a中元素不能超过 n
#             #clip:a 中的元素如小于0将其变为0,如大于n-1变为n-1
#             #wrap:将a中的值 value变为value mod n,即值除以n余数。=============================================================================

这篇关于numpy 学习汇总45 - 数组选择设置(11种方法)( 初步学习 tcy)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/829070

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

如何选择适合孤独症兄妹的学校?

在探索适合孤独症儿童教育的道路上,每一位家长都面临着前所未有的挑战与抉择。当这份责任落在拥有孤独症兄妹的家庭肩上时,选择一所能够同时满足两个孩子特殊需求的学校,更显得尤为关键。本文将探讨如何为这样的家庭做出明智的选择,并介绍星贝育园自闭症儿童寄宿制学校作为一个值得考虑的选项。 理解孤独症儿童的独特性 孤独症,这一复杂的神经发育障碍,影响着儿童的社交互动、沟通能力以及行为模式。对于拥有孤独症兄

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

hdu2241(二分+合并数组)

题意:判断是否存在a+b+c = x,a,b,c分别属于集合A,B,C 如果用暴力会超时,所以这里用到了数组合并,将b,c数组合并成d,d数组存的是b,c数组元素的和,然后对d数组进行二分就可以了 代码如下(附注释): #include<iostream>#include<algorithm>#include<cstring>#include<stack>#include<que

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]