在数据科学领域,程序就是数据与处理数据方法的集合。简单的讲,首先要有数据,然后通过运行代码处理数据,最终获得想要的结果。而编写和理解一段Python或R代码,完全可以像读写英文一样。Python与R是很容易入门的计算机语言,两者在很多方面具有相似性。本文简单介绍了Python与R的基本语法、数据的结构、程序的结构、函数、面向对象编程共5个方面的内容,希望读者在读完本篇文章之后,对程序有所了解。文章目录如下:
a = 5b = 10
a <- 510 -> bc = 20
print(a + b)15
print(a + b)[1]15cat(a + b)15
a = input()abc #输入abcprint(a)abc
#输入单个a <- readline() abc #输入abcprint(a)[1] "abc"#输入多个方式1a <- readLines(n=3) #连续输入3个值abcprint(a)[1] "a" "b" "c"#输入多个方式2a <- scan() #连续输入,最后一个不输入,按下回车键,输入结束1: 12: 23: 34:Read 3 itemsprint(a)[1] 1 2 3
import typesa = 'abc'type(a)
a <- '123'typeof(a)[1] "character"mode(a)[1] "character"
list1 = ['hello', 'world', 1000, 2000]list2 = [1, 2, 3, 4, 5 ]list3 = ["a", "b", "c", "d"]
tup1 = ('hello', 'world', 1000, 2000)tup2 = (1, 2, 3, 4, 5 )tup3 = "a", "b", "c", "d" # 不需要括号也可以
dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}
basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}print(basket){'orange', 'banana', 'pear', 'apple'}a = set('abracadabra')print(a){'r', 'b', 'c', 'd', 'a'}
import numpy as npa = np.array([2,3,4]) b = np.array([2.0,3.0,4.0])c = np.array([[1.0,2.0],[3.0,4.0]])d = np.array([[1,2],[3,4]],dtype=complex) #
import pandas as pddata = ['a','b','c','d','e']serie = pd.Series(data,index=[2,4,6,8,10],dtype=str)print(serie)2 a4 b6 c8 d10 edtype: object
import pandas as pddata = {'state':['Ohio','Ohio','Ohio','Nevada','Nevada'], 'year':[2000,2001,2002,2001,2002], 'pop':[1.5,1.7,3.6,2.4,2.9] }frame = pd.DataFrame(data)frame state year pop0 Ohio 2000 1.51 Ohio 2001 1.72 Ohio 2002 3.63 Nevada 2001 2.44 Nevada 2002 2.9
a <- c(1,2,3,4,5,6)b <- c('one','two','three')c <- c(TRUE,TRUE,FALSE,FALSE)
a <- matrix(1:20,nrow=5,ncol=4)print(a) [,1] [,2] [,3] [,4][1,] 1 6 11 16[2,] 2 7 12 17[3,] 3 8 13 18[4,] 4 9 14 19[5,] 5 10 15 20
dim1 <- c('A1','A2')dim2 <- c('B1','B2','B3')dim3 <- c('C1','C2','C3','C4')a <- array(1:24,c(2,3,4),dimnames=list(dim1,dim2,dim3))print(a), , C1 B1 B2 B3A1 1 3 5A2 2 4 6, , C2 B1 B2 B3A1 7 9 11A2 8 10 12, , C3 B1 B2 B3A1 13 15 17A2 14 16 18, , C4 B1 B2 B3A1 19 21 23A2 20 22 24
df <- data.frame(col1=c(1,2,3),col2=c('a','b','c'),col3=c(TRUE,FALSE,FALSE))df col1 col2 col31 1 a TRUE2 2 b TRUE3 3 c FALSE
#类别diabetes <- c('Type1','Type2','Type1','Type1')diabetes <- factor(diabetes) #将此向量存储为(1, 2, 1, 1),并在内部将其关联为 1=Type1和2=Type2print(diabetes)[1] Type1 Type2 Type1 Type1Levels: Type1 Type2#有序类别status <- c('Poor','Improved','Excellent','Poor')status <- factor(status, ordered=TRUE) #会将向量编码为(3, 2, 1, 3),并在内部将这些值关联为1=Excellent、2=Improved以及3=Poorprint(status)[1] Poor Improved Excellent Poor Levels: Excellent < Improved < Poor
a <- 'hello world'b <- c(1,2,3)c <- matrix(1:4,2,2)d <- data.frame(x=c(1,2),y=c('a','b'))List <- list(Str = a,vector = b, matrix = c,dataframe = d) #创建列表并给列表命名List$Str[1] "hello world"$vector[1] 1 2 3$matrix [,1] [,2][1,] 1 3[2,] 2 4$dataframe x y1 1 a2 2 b
#单行注释#第一个注释#第二个注释#多行注释一'''第三个注释第四个注释'''#多行注释二"""第五个注释第六个注释"""
#第一个注释#第二个注释
#条件判断代码块if True: print ("True")else: print ("False")#for循环代码块for i in [1,2,3,4]: print (i)
如果代码最后一行语句缩进数的空格数不一致,会导致运行错误:
if True: print ("True1") print ("True2")else: print ("False1") print ("False2") # 缩进不一致,会导致运行错误#以上代码运行结果如下 File "<tokenize>", line 6 print ("False2") # 缩进不一致,会导致运行错误 ^IndentationError: unindent does not match any outer indentation level
#条件判断代码块if (TRUE) {print ("TRUE")} else {print ("FALSE")}#for循环代码块for (i in 1:4) {print (i)}
#条件判断代码块if (TRUE) { print ("TRUE")} else { print ("FALSE")}#for循环代码块for (i in 1:4) { print (i)}
a = 5b = 10if a == b: print ('a等于b')elif a > b: print ('a大于b')else: print ('a小于b')
a <- 5b <- 10if (a == b){ print ('a等于b')}else if (a > b){ print ('a大于b')}else{ print ('a小于b')}
#老王每个孩子给他发红包children = ['老大','老二','老三','老四','老五']for child in children: #使用in遍历children中的每一个child print (child + '给了老王1000块钱的红包')老大给了老王1000块钱的红包老二给了老王1000块钱的红包老三给了老王1000块钱的红包老四给了老王1000块钱的红包老五给了老王1000块钱的红包 #for循环9*9乘法口诀for row in range(1, 10): for col in range(1, row+1): print('{}*{}={}'.format(col, row, col * row), end=' ') print() 1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
#老王每个孩子给他发红包children <- c('老大','老二','老三','老四','老五')for (child in children){ #使用in遍历children中的每一个child print (paste0(child, '给了老王1000块钱的红包'))}[1] "老大给了老王1000块钱的红包"[1] "老二给了老王1000块钱的红包"[1] "老三给了老王1000块钱的红包"[1] "老四给了老王1000块钱的红包"[1] "老五给了老王1000块钱的红包" #for循环9*9乘法口诀for (row in 1:9){ for (col in 1:row){ cat(col,'*',row,'=',col*row,' ',sep='') } cat('\n')}1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
#孩子照顾生病的老王i = 1while i <=5: print('孩子照顾了老王{}天'.format(i) ) i = i+1 孩子照顾了老王1天孩子照顾了老王2天孩子照顾了老王3天孩子照顾了老王4天孩子照顾了老王5天#while循环9*9乘法口诀row = 1while row <= 9: col = 1 while col <= row: print('{}*{}={}'.format(row, col, row * col), end=' ') col = col+1 print() row = row+11*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 4*1=4 4*2=8 4*3=12 4*4=16 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
#孩子照顾生病的老王i = 1while (i <=5){ print(paste0('孩子照顾了老王',i,'天' )) i = i+1} [1] "孩子照顾了老王1天"[1] "孩子照顾了老王2天"[1] "孩子照顾了老王3天"[1] "孩子照顾了老王4天"[1] "孩子照顾了老王5天"#while循环9*9乘法口诀row = 1while (row <= 9){ col = 1 while (col <= row){ cat(col,'*',row,'=',col*row,' ',sep='') col = col+1 } cat('\n') row = row+1} 1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 4*1=4 4*2=8 4*3=12 4*4=16 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
#Python中的求和函数a = [1,2,3,4,5]sum(a)#R中的求和函数a = c(1,2,3,4,5)sum(a)
#R中使用函数的方式sum(c(1,2,3,4,5)) #对向量求和data <- data.frame(x=c(1,2,3,4,5,6,7,8),y=c('a','b','c','d','e'))head(data,3) #查看data.frame的前几行
#Python中使用函数方式一:括号内使用a = [1,2,3,4,5]sum(a)a.sum() #会报错#Python中使用函数方式二:使用对象的方法import numpy as npb = np.array([1,2,3,4,5]) b.sum() #ndarray对象求和时使用sum()函数sum(b) #对ndarray对象求和也可以调用Python自带的sum()函数 import pandas as pddf = pd.DataFrame({'x':[1,2,3,4,5],'y':['a','b','c','d','e']})df.head(3) #pandas的DataFrame对象查看前几行数据使用head()函数df.x.sum() #DataFrame对象对x列求和sum(df.x) #对DataFrame的列求和也可以调用Python自带的sum()函数
#根据体重、身高计算BMI,并给出建议#step1:使用关键词def定义函数,BMI是函数的名称,括号内的weight、height是两个参数def BMI(weight,height): #step2.1:将weight、height作为函数内变量,在函数内进行运算,生成BMI值 bmi = weight/height**2 #step2.2:将计算所得结果bmi作为一个函数内变量,根据bmi大小,新生成一个变量suggestion if bmi < 18: suggestion = '偏瘦,需要增重了!' elif bmi >24: suggestion = '偏胖,需要减肥了!' else: suggestion = '正常,请继续保持!' #step3:将所有运算结果整合至一段话,并返回一个最终结果 return ('您的体重为:%dkg,身高为:%.2fm,BMI指数为:%.2f,体型%s'%(weight, height, bmi,suggestion))BMI(70,1.8) #使用函数时,如果不指名参数是哪个,位置要与函数定义中的参数保持一致#或者BMI(height=1.8,weight=70) #如果指名参数是哪个,位置可以随意调整#以上代码输出结果为:'您的体重为:70kg,身高为:1.80m,BMI指数为:21.60,体型正常,请继续保持!'
#根据体重、身高计算BMI,并给出建议#step1:使用关键词function定义函数,BMI是函数的名称,括号内的weight、height是两个参数BMI<-function(weight,height){ #step2.1:将weight、height作为函数内变量,在函数内进行运算,生成BMI值 bmi <- weight/height**2 #step2.2:将计算所得结果bmi作为一个函数内变量,根据bmi大小,新生成一个变量suggestion if (bmi < 18){ suggestion <- '偏瘦,需要增重了!' } else if(bmi >24) { suggestion <- '偏胖,需要减肥了!' }else{ suggestion = '正常,请继续保持!' } #step3:将所有运算结果整合至一段话,并返回一个最终结果 return (paste0('您的体重为:',weight,'kg,身高为:',height,'m,BMI指数为:',round(bmi,2),',体型',suggestion))}BMI(70,1.8) #使用函数时,如果不指名参数是哪个,位置要与函数定义中的参数保持一致#或者BMI(height=1.8,weight=70) #如果指名参数是哪个,位置可以随意调整#以上代码输出结果为:'您的体重为:70kg,身高为:1.80m,BMI指数为:21.60,体型正常,请继续保持!'
#定义一个函数def BMI(weight,height): return (weight/height**2)#再函数中输入体重和身高完成计算BMI(70,1.8)
评论前必须登录!
注册