numpy 实现返回指定行的指定元素的位置索引

先上代码,主要语句为np.where(b[c]==1),

详细解释如下:

import numpy as np
b = np.array([[-2,-3,0,0,0,6,4,1],[88,1,0,0,0,6,4,2],[99,6,0,0,1,6,4,2]]) # 三行八列的数组b
print('b\n',b)

c = np.array([2,0])     # c表示指定行
print('b[c]\n',b[c])    # b[c]返回 数组b的指定行  这里依次返回了b的下标为2和0的行

print('\n')
print(np.where(b[c]==1)) # 返回指定行的指定元素的位置索引 这里返回了b[c]每行中 值为1的位置索引

观察np.where()的返回值(array([0, 1], dtype=int64), array([4, 7], dtype=int64))可以发现,

对于数组b[c]来说,其中值为1的位置在[0,4]以及[1,7]上,np.where()返回了一个元组,[0]的位置表示行索引,[1]表示列索引。

综上,np.where(b[c]==1)实现的功能是,从b中按c中元素的顺序找到c所指定的行,然后再这些行中发现值为1的位置。

补充:短小精悍算例:Python如何提取数组Numpy array中指定元素的位置索引

数组a的表达式如下:

import numpy as np
a = np.array([1, 2, 3, 2, 2, 3, 0, 8, 3])
print(a)

输出结果:

[1 2 3 2 2 3 0 8 3]

现在要找出a中元素3的位置索引。

r1 = np.where(a==3)
print(type(r1))
print(r1)

输出结果:

<class 'tuple'>

(array([2, 5, 8], dtype=int64),)

可见得到的是一个tuple。

如果要想得到array,采用如下表示:

r1 = np.where(a==3)
print(type(r1[0]))
print(r1[0])

输出结果:

<class 'numpy.ndarray'>

[2 5 8]

还可以使用argwhere()函数进行操作:

r2 = np.argwhere(a==3)
print(type(r2))
print(r2)
print(r2.shape)

输出结果:

<class 'numpy.ndarray'>

[[2]

[5]

[8]]

(3, 1)

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • 浅谈python已知元素,获取元素索引(numpy,pandas)

    目前搜索到的方法有: np.where('元素') 还有就是pandas的方法: df.index('元素') 但是第二个方法的问题就是会报错,嗯,这就比较尴尬了,查询了网上的解决方案,有这样的: 此外使用 df[df['列名'].isin([相应的值])] 这个命令会输出等于该值的行. 此外如果想快速找到dataframe最后几行的话,可以使用的方法是tail,可以获取若干行的值 以上这篇浅谈python已知元素,获取元素索引(numpy,pandas)就是小编分享给大家的全部内容了,希望能给

  • python如何获得list或numpy数组中最大元素对应的索引

    获得list中最大元素的索引 aa = [1,2,3,4,5] aa.index(max(aa)) 相应的最小值使用 aa = [1,2,3,4,5] aa.index(min(aa)) 获得numpy数组中最大元素的索引 1.可以使用numpy的函数,argmax获得最大元素的索引,相应的获得最小值的话需要使用argmin. aa = [1,2,3,4,5] arr_aa = np.array(aa) maxindex = np.argmax(arr_aa ) 1.也可以将numpy转为lis

  • numpy:找到指定元素的索引示例

    目的:在numpy数组中知道指定元素的索引 函数: np.argwhere >>>x >>>array([[0, 1, 2], [3, 4, 5]]) >>>np.argwhere(x>1) >>>array([[0, 2], [1, 0], [1, 1], [1, 2]]) 以上这篇numpy:找到指定元素的索引示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • numpy 实现返回指定行的指定元素的位置索引

    先上代码,主要语句为np.where(b[c]==1), 详细解释如下: import numpy as np b = np.array([[-2,-3,0,0,0,6,4,1],[88,1,0,0,0,6,4,2],[99,6,0,0,1,6,4,2]]) # 三行八列的数组b print('b\n',b) c = np.array([2,0]) # c表示指定行 print('b[c]\n',b[c]) # b[c]返回 数组b的指定行 这里依次返回了b的下标为2和0的行 print('\n

  • pandas数据处理基础之筛选指定行或者指定列的数据

    pandas主要的两个数据结构是:series(相当于一行或一列数据机构)和DataFrame(相当于多行多列的一个表格数据机构). 本文为了方便理解会与excel或者sql操作行或列来进行联想类比 1.重新索引:reindex和ix 上一篇中介绍过数据读取后默认的行索引是0,1,2,3...这样的顺序号.列索引相当于字段名(即第一行数据),这里重新索引意思就是可以将默认的索引重新修改成自己想要的样子. 1.1 Series 比方说:data=Series([4,5,6],index=['a',

  • MySQL使用select语句查询指定表中指定列(字段)的数据

    本文介绍MySQL数据库中执行select查询语句,查询指定列的数据,即指定字段的数据. 再来回顾一下SQL语句中的select语句的语法: Select 语句的基本语法: Select <列的集合> from <表名> where <条件> order by <排序字段和方式> 如果要查询某个表中的指定列的所有数据,则查询语句可以写作: select 列名1,列名2,列名3... from <表名> 要说明一个,这个语句后面仍然可以使用wher

  • 利用js查找数组中指定元素并返回该元素的所有索引示例

    前言 这篇文章主要给大家介绍的是利用js查找数组中指定元素并返回该元素的所有索引的相关资料,文中给出了详细的示例代码,下面话不多说,来看看详细的代码示例吧. 示例代码 //在数组中查找所有出现的x,并返回一个包含匹配索引的数组 function findall(a,x){ var results=[], len=a.length, pos=0; while(pos<len){ pos=a.indexOf(x,pos); if(pos===-1){//未找到就退出循环完成搜索 break; } r

  • javascript实现输出指定行数正方形图案的方法

    本文实例讲述了javascript实现输出指定行数正方形图案的方法.分享给大家供大家参考.具体如下: javascript实现输出指定行数的正方形图案:点击生成图案,会有2个提示框,1,输入图案的组成字符,只能是1个字符哦2,输入正方形行数,路过大于10,会设置为10行数 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd

  • python读取文件指定行内容实例讲解

    python读取文件指定行内容 import linecache text=linecache.getline(r'C:\Users\Administrator\Desktop\SourceCodeofMongoRedis\chapter_5\generate_string.py',10) 第十行内容为# info = '''1000001 王小小''' 实例扩展: 本文实例讲述了Python3实现从文件中读取指定行的方法.分享给大家供大家参考.具体实现方法如下: ''' 遇到问题没人解答?小编

  • Python pandas删除指定行/列数据的方法实例

    目录 1.滤除缺失数据dropna() 1)滤除含有NaN值的所有行 2)滤除含有NaN值的所有列 3)滤除元素都是NaN值的行 4)滤除元素都是NaN值的列 5)滤除指定列中含有缺失的行 2.删除重复值 drop_duplicates() 1)keep=“first” 2)keep=“last” 3)keep=False 4)删除指定列中重复项对应的行 3.根据指定条件删除行列drop() 1).删除指定列 2).删除指定行 总结 1.滤除缺失数据dropna() import pandas

  • javascript中删除指定数组中指定的元素的代码

    函数如下: 复制代码 代码如下: foreach = function (obj, insp){ if(obj== null && obj.constructor != Array){ return []; } //obj是要处理的数组,obj==null 表示对象尚未存在:obj.constructor != Array 表示对象obj的属性的构造函数不是数组: //constructor属性始终指向创建当前对象的构造函数.两个条件均满足,则返回空数组[]: //下面对construct

  • 简单文件操作python 修改文件指定行的方法

    例一: 复制代码 代码如下: #!/usr/bin/pythonimport sysimport reif __name__=="__main__": f=file("hi.txt","w+") li=["hello\n","hi\n"] f.writelines(li) f.close() "W+"模式:如果没有hi.txt则创建文件写入:如果存在,则清空hi.txt内容,从新写入.

  • 对python for 文件指定行读写操作详解

    1.os.mknod("test.txt") #创建空文件 2.fp = open("test.txt",w) #直接打开一个文件,如果文件不存在则创建文件 3.关于open 模式: 详情: w:以写方式打开, a:以追加模式打开 (从 EOF 开始, 必要时创建新文件) r+:以读写模式打开 w+:以读写模式打开 (参见 w ) a+:以读写模式打开 (参见 a ) rb:以二进制读模式打开 wb:以二进制写模式打开 (参见 w ) ab:以二进制追加模式打开 (

随机推荐