例1:給一個(gè)列表如下,里面每個(gè)元素對(duì)應(yīng)的是x和y的值
a = [[5,2],[6,3],[8,8],[1,3]]
現(xiàn)在要挑出y的值為3對(duì)應(yīng)的x的值,即6和1
import numpy as np
a = [[5,2],[6,3],[8,8],[1,3]]
#c=np.mat(a),因?yàn)橹挥芯仃嚕ㄒ部梢杂胊rray)才能用a[0,0]這樣的調(diào)用
#表示第一個(gè)數(shù)的用法而list沒(méi)有,故在最后append需要用到
#注意:array也沒(méi)有index這樣的用法(只有l(wèi)ist有,此題a已經(jīng)是list),
#使用index要改成list
c = np.mat(a)
b = []
for i in range(len(a)):
try: #使用try...except...是因?yàn)楸热?不在第一個(gè)[5,2]中會(huì)報(bào)錯(cuò)并終止運(yùn)行
b_index = a[i].index(3) #使用index尋找3所在的索引值
except:
pass #pass表示如果報(bào)錯(cuò)那么跳過(guò)并繼續(xù)下一個(gè)
else: #如果沒(méi)有報(bào)錯(cuò)則進(jìn)行else內(nèi)容
b.append(c[i,0])
print(b)
#結(jié)果為
[6,1]
或者使用簡(jiǎn)單的如下:
a = [[5,2],[6,3],[8,8],[1,3]]
x = [i for i in a if 3 in i]
print(x)
例2:
已知一系列坐標(biāo)(x,y,z,h)分別對(duì)應(yīng)橫坐標(biāo)縱坐標(biāo)z坐標(biāo)和高,現(xiàn)在要在x-y平面畫(huà)出h=0.00221圖(實(shí)際上就是等高線圖)
h保留5位小數(shù)。
上面只展示了一小部分?jǐn)?shù)據(jù)
1,導(dǎo)入數(shù)據(jù)
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位小數(shù)
for i in range(len(data)):
data[i,3] = float('%.5f'%data[i,3])
3,將h=0.00211對(duì)應(yīng)的x,y坐標(biāo)找到并保存到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,畫(huà)散點(diǎn)圖
plt.scatter(x_mat,y_mat)
plt.show()
結(jié)果如下:
完整代碼:
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列表中選出一個(gè)數(shù)和其對(duì)應(yīng)的坐標(biāo)方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元

