如何返回数组中某个元素所在的位置

这篇博客深入探讨了NumPy库中的索引和查找功能。首先,`np.argwhere()`函数用于获取数组中非零元素的索引元组。接着,`np.where()`用于定位满足特定条件的元素的行和列索引。此外,还介绍了将数组转换为列表后,使用`tolist()`和`index()`方法来寻找元素索引的方法。这些功能对于数据分析和处理至关重要。
1.np.argwhere()
  • 返回非0的数组元组的索引,其中a是要索引数组的条件
2.np.where()
  • 左边是行索引,右边是列索引
3.还有一种方法是将数组利用tolist()转化成列表,利用index()求索引

在这里插入图片描述

在不同编程语言中,有多种方法可以记录数组中某个元素位置,以下是一些示例: ### JavaScript 方法 可以使用 `indexOf` 结合循环来记录元素出现的位置。示例代码如下: ```javascript // 数组中某元素出现的位置和次数 var arr = ['red', 'blue', 'green', 'red', 'yellow', 'red', 'blue', 'green']; var element = 'red'; var index = arr.indexOf(element); var positions = []; while (index != -1) { positions.push(index); index = arr.indexOf(element, index + 1); } console.log(positions); ``` 上述代码通过 `indexOf` 方法查找元素第一次出现的位置,然后在循环中不断从该位置的下一个位置继续查找,将每次找到的位置记录在 `positions` 数组中 [^1]。 还可以使用以下封装的函数来实现查找元素数组中出现的位置: ```javascript (function(){ var arr = [12,23,345,34,56,76,12,23,76]; //第一个参数是要查找的对象 //第二个参数是要查找的元素 function search(obj,cont) { //保存出现的位置 var position = []; var i = 0; //如果要查找的元素在对象中存在 while(obj.indexOf(cont,i) >= 0){ //保存元素出现的位置 var index = obj.indexOf(cont,i); //把出现的位置保存到数组中 position.push(index); //从这个元素的下一开始 i = index + 1; } console.log(position); } search(arr,12); })() ``` 此代码定义了一个 `search` 函数,它接受一个数组和要查找的元素作为参数,通过循环和 `indexOf` 方法记录元素出现的位置 [^4]。 ### Java 方法 在 Java 中可以使用数组来记录指定元素出现的位置,示例代码如下: ```java class Solution { public int[] occurrencesOfElement(int[] nums, int x) { int n = nums.length; int[] list = new int[n + 1]; // 初始状态下认为所有元素都不能在 nums 中查询到 java.util.Arrays.fill(list, -1); int count = 0; for(int i = 0; i < n; i++) { if(nums[i] == x) { // 记录某次出现的元素所在的下标 list[count++] = i; } } int[] result = new int[count]; System.arraycopy(list, 0, result, 0, count); return result; } } ``` 上述 Java 代码定义了一个 `occurrencesOfElement` 方法,它遍历数组 `nums`,当遇到指定元素 `x` 时,将其位置记录在 `list` 数组中,最后将记录的位置复制到 `result` 数组返回 [^2]。 ### ActionScript 方法 在 ActionScript 中可以使用对象来记录数组中相同元素位置,示例代码如下: ```actionscript var my_array:Array=[1,2,1,2,1,2,3,2,1]; var key_obj:Object ={}; var p:uint =my_array.length; while (p-->0) { key_obj[my_array[p]]?key_obj[my_array[p]].push(p):key_obj[my_array[p]]=[p]; } for (var _p in key_obj) { trace(_p+"的位置有:"+key_obj[_p]); } ``` 这段代码通过循环遍历数组,将每个元素作为对象的键,其位置作为值存储在数组中,最后通过遍历对象输出每个元素位置 [^5]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值