2016-09-28 19 views
-2

我想添加10如果x < 50,20如果50 <= x < 100,30如果100 <= x < 150和40對於150 <= x < 200。我怎麼解決這個問題?在我的數組arr我有超過300個數據元素。預先感謝您的友好合作。使用python有條件地向數組添加不同的值

arr =[10,20,30,40,50,60,70,80,90,100,120,130,140,150,160,170,180,190,200] 
+0

我要添加10對於x <50,20,50

+0

這不是一個非常難回答的問題,所以我鼓勵你看看python'map'或'list comprehension'。你試過什麼了? – jtitusj

回答

2

這似乎有點像作業練習? 我明確地分出了你需要做的修改,所以很容易看出它在做什麼。請注意:我沒有輸入所有的規則,只是一些,所以你可以看到你如何擴展它。

x=[10,20,30,40,50,60,70,80,90,100,120,130,140,150,160,170,180,190,200] 
for value in x: 
    oldvalue = value 
    if value < 50: 
     value += 10 
    elif value < 100: 
     value += 20 
    else: 
     value += 30 
    print("%i => %i" % (oldvalue, value)) 

此打印:

10 => 20 
20 => 30 
30 => 40 
40 => 50 
50 => 70 
60 => 80 
70 => 90 
80 => 100 
.... 
+0

謝謝。如果x <10&50

+0

只是改變你的條件,包括新的語句: 如果值> 10和值<50: [在這裏做某件事] – MichielB

+0

爲xc_141在x_141: oldvaluex = xc_141 爲yc_141在y_141: oldvaluey = yc_141 如果[xc_141 <10000]和[yc_141 <30000]: xc_141 - = 43 yc_141 + = 50個 的elif xc_141 <10000和30000 %d」%(oldvaluey,yc_141)) else: yc_141 = y_141-50 xc_141 = x_141-67 print(「%d =>%d 「%(oldvaluex,xc_141)) plt.plot(xc_141,yc_141,」gs「), –

0

這是很容易使用也大熊貓。感謝這個網站的幫助。

import matplotlib.pyplot as plt 
import numpy as np 
import pandas as pd 
import math 
import xlwt 
import xlrd 


df_180 = pd.read_csv('Image_146.pft', error_bad_lines=False,header=19) 
df_181 = pd.read_csv('Image_T181.pft', error_bad_lines=False,header=20) 

df_182 = pd.read_csv('Image_T182.pft', error_bad_lines=False, header=20) 
df_183 = pd.read_csv('Image_T183.pft', error_bad_lines=False, header=20) 


x_180=df_180.iloc[:,7] 
y_180=df_180.iloc[:,8] 

x_181=df_181.iloc[:,7] 
y_181=df_181.iloc[:,8] 

x_182=df_182.iloc[:,7] 
y_182=df_182.iloc[:,8] 

x_183=df_183.iloc[:,7] 
y_183=df_183.iloc[:,8] 

plt.style.use('ggplot') 

fn ="C:\Users\M15-1478\Desktop\python\Scatter plot.xlsx" 
sheetname = 'T181' 
df = pd.read_excel(fn, sheetname=sheetname, skiprows=47, parse_cols='B:C').dropna(how='any') 
df.ix[df.eval('0 <= GrvX <= 500'), 'GrvX'] -= 161 
df.ix[df.eval('500 < GrvX <= 1000'), 'GrvX'] -= 114 
df.ix[df.eval('1000 < GrvX < 1500'), 'GrvX'] -= 75 
df.ix[df.eval('1500 < GrvX < 2000'), 'GrvX'] -= 15 
df.ix[df.eval('2000 < GrvX < 2600'), 'GrvX'] += 30 
df.ix[df.eval('2600 < GrvX < 2900'), 'GrvX'] += 70 

# customize Y-values 
df.ix[df.eval('0 <= GrvY <= 1000'), 'GrvY'] += 30 

df.plot(x='GrvX', y='GrvY', linestyle='no line', marker="o", label=sheetname) 
plt.plot(x,y,"gs") 

plt.xlabel("x (micron)", size ="18",color ="m") 
plt.ylabel("y (micron)", size ="18",color ="m") 
plt.title("scatter plot after matching", size ="18",color ="m") 
plt.show() 
相關問題