numpy找到数组[1,2,4,0,8,0,6,5]中非0元素的位置索引
时间: 2023-06-24 08:08:16 浏览: 102
可以通过numpy的`nonzero`函数来找到非0元素的位置索引,代码如下:
```python
import numpy as np
arr = np.array([1, 2, 4, 0, 8, 0, 6, 5])
nonzero_idx = np.nonzero(arr)[0]
print(nonzero_idx)
```
输出结果为:
```
[0 1 2 4 6 7]
```
其中,`nonzero`函数返回的是一个元组,包含了非零元素的位置索引,因此需要取出第一个元素。
相关问题
输出使用numpy创建的一维数组中[0,2,4,0,0,1,0]非零元素的位置索引。
Sure, 我可以回答这个问题。你可以使用numpy库中的nonzero函数来获取非零元素的位置索引。
代码如下:
import numpy as np
a = np.array([0,2,4,0,0,1,0])
nonzero_index = np.nonzero(a)[0]
print(nonzero_index)
输出:
[1 2 5]
这是该数组中非零元素的位置索引,其中1、2和5分别是2、4和1的索引值。
import numpy as np with open('成绩单数字.csv', 'r', encoding='utf-8') as file: s = file.read().replace('\n', ',').split(',') scoreAll = np.array(list(s)).reshape(6, 8) # 字符串s转成列表,转为6行8列的数组 #print(scoreAll) # 输出数组scoreAll scoreNum = scoreAll[1:, 2:].astype(int) #数组scoreAll中非数值型字符串去掉,转为整型,生成数组 #print(scoreNum) # 输出数组scoreNum name = input() course = input() indexName = np.argwhere(scoreAll==name ) print(indexName) print('{}同学的平均成绩为{:.2f}'.format(scoreAll[indexName[0,0],0],np.average(scoreNum[indexName[0,0]-1, 0:]))) indexCourse = np.argwhere(scoreAll==course ) print(indexCourse) print('{}课程平均成绩为{:.2f}'.format(scoreAll[0,indexCourse[0,1]],np.average(scoreNum[0:,indexCourse[0,1]-2]))) print('该课程中位数为{:.2f}'.format(np.median(scoreNum[0:,indexCourse[0,1]-2]))) print('该课程标准差为{:.2f}'.format(np.std(scoreNum[0:,indexCourse[0,1]-2])))
这段代码是一个Python程序,读取了一个成绩单的CSV文件,将读取的数据转为NumPy数组,并进行了一些数据处理和统计分析。其中,输入了两个变量name和course,分别代表学生姓名和课程名称。代码使用np.argwhere()函数查找数组中对应元素的索引,然后使用np.average()函数计算平均值,np.median()函数计算中位数,np.std()函数计算标准差,最终输出了对应的结果。
阅读全文