例如我有一个5*5的矩阵
array([[0, 0, 0, 0, 1], [1, 1, 0, 1, 0], [1, 0, 1, 1, 0], [1, 0, 0, 1, 0], [1, 0, 0, 0, 1]])
第一行第五列的元素值就为1,那么把它的坐标记成(1,5),
第二行第一列的元素值也为1,记为(2,1)我想要获取矩阵中所有值为1的元素的坐标要怎么做。或者用pandas做也行
python矩阵坐标一般是0开始的。调用了numpy库,如下示意代码请参考。
import numpy as np
arr=np.array([[0, 0, 0, 0, 1],
[1, 1, 0, 1, 0],
[1, 0, 1, 1, 0],
[1, 0, 0, 1, 0],
[1, 0, 0, 0, 1]])
idx=np.array(np.where(arr==1))
if idx.shape[1]>0:
print('where arr==1, index is: ')
for i in range(idx.shape[1]):
print((idx[0,i],idx[1,i]))
else:
print('no exits index where arr==1')
#!/usr/bin/python
# -*- coding: UTF-8 -*-
"""
@author: YangPC
@time:2021/06/17
@QQ:327844761
@微信公众号:ewbang
"""
def fun():
arr = [[0, 0, 0, 0, 1],
[1, 1, 0, 1, 0],
[1, 0, 1, 1, 0],
[1, 0, 0, 1, 0],
[1, 0, 0, 0, 1]]
result = []
for i in range(len(arr)):
for j in range(len(arr[i])):
if (arr[i][j] == 1):
result.append((i + 1, j + 1))
print(result)
if __name__ == '__main__':
fun()
程序输出结果:编码不易,如有帮助,望采纳!