python从list列表中选出一个数和其对应的坐标方法

yipeiwu_com6年前Python基础

例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列表中选出一个数和其对应的坐标方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

浅析Python中的多重继承

浅析Python中的多重继承

继承是面向对象编程的一个重要的方式,因为通过继承,子类就可以扩展父类的功能。 回忆一下Animal类层次的设计,假设我们要实现以下4种动物:    ...

100行Python代码实现每天不同时间段定时给女友发消息

100行Python代码实现每天不同时间段定时给女友发消息

每天不同时间段通过微信发消息提醒女友 简介 有时候,你很想关心她,但是你太忙了,以至于她一直抱怨,觉得你不够关心她。你暗自下决心,下次一定要准时发消息给她,哪怕是几句话,可是你又忘记了。...

Python3 venv搭建轻量级虚拟环境的步骤(图文)

Python3 venv搭建轻量级虚拟环境的步骤(图文)

今天先聊一聊在windows/mac iOS系统下用venv搭建python轻量级虚拟环境的问题。 使用venv搭建的虚拟环境同virtualenv搭建的虚拟环境,即venv可替代vir...

用Python中的wxPython实现最基本的浏览器功能

通常,大多数应用程序通过保持 HTML 简单来解决大多数浏览器问题 ― 或者说,根据最低共同特性来编写。然而,即便如此,也仍然存在字体和布局的问题,发行新浏览器和升级现有浏览器时,也免不...

Python循环语句之break与continue的用法

Python循环语句之break与continue的用法

Python break 语句 Python break语句,就像在C语言中,打破了最小封闭for或while循环。 break语句用来终止循环语句,即循环条件没有False条件或者序列...