小编给大家分享一下python如何从list列表中选出一个数和其对应的坐标,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
例1:给一个列表如下,里面每个元素对应的是x和y的值
a = [[5,2],[6,3],[8,8],[1,3]]
现在要挑出y的值为3对应的x的值,即6和1
import numpy as np a = [[5,2],[6,3],[8,8],[1,3]] #c=np.mat(a),因为只有矩阵(也可以用array)才能用a[0,0]这样的调用 #表示第一个数的用法而list没有,故在最后append需要用到 #注意:array也没有index这样的用法(只有list有,此题a已经是list), #使用index要改成list c = np.mat(a) b = [] for i in range(len(a)): try: #使用try...except...是因为比如3不在第一个[5,2]中会报错并终止运行 b_index = a[i].index(3) #使用index寻找3所在的索引值 except: pass #pass表示如果报错那么跳过并继续下一个 else: #如果没有报错则进行else内容 b.append(c[i,0]) print(b) #结果为 [6,1]
或者使用简单的如下:
a = [[5,2],[6,3],[8,8],[1,3]] x = [i for i in a if 3 in i] print(x)
例2:
已知一系列坐标(x,y,z,h)分别对应横坐标纵坐标z坐标和高,现在要在x-y平面画出h=0.00221图(实际上就是等高线图)
h保留5位小数。
上面只展示了一小部分数据
1,导入数据
import matplotlib.pyplot as plt import numpy as np data = np.loadtxt(r'/media/sf_Share/fisher_matrix/myLSPE/data/41+95+150/r_0.01/sigma_F_0.1/sigma_F=0.1/threefre.txt')
2,将第四列即h保留5位小数
for i in range(len(data)): data[i,3] = float('%.5f'%data[i,3])
3,将h=0.00211对应的x,y坐标找到并保存到x_mat和y_mat中
x_mat = [] y_mat = [] for i in range(len(data)): try: data_index = list(data[i]).index(0.00211) except: pass else: x_mat.append(data[i,0]) y_mat.append(data[i,1])
4,画散点图
plt.scatter(x_mat,y_mat) plt.show()
结果如下:
完整代码:
import matplotlib.pyplot as plt import numpy as np data = np.loadtxt(r'/media/sf_Share/fisher_matrix/myLSPE/data/41+95+150/r_0.01/sigma_F_0.1/sigma_F=0.1/threefre.txt') for i in range(len(data)): data[i,3] = float('%.5f'%data[i,3]) #data_list = list(data) x_mat = [] y_mat = [] for i in range(len(data)): try: data_index = list(data[i]).index(0.00211) except: pass else: x_mat.append(data[i,0]) y_mat.append(data[i,1]) plt.scatter(x_mat,y_mat) plt.show()
看完了这篇文章,相信你对“python如何从list列表中选出一个数和其对应的坐标”有了一定的了解,如果想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。