a byte of python 入门书籍 在线阅读: https://python.swaroopch.com/ 1. sequences 包括 list, tuple, string list 与 tuple 的区别: a. list is define by [], tuple is defined by (). b. tuple 不支持 del 和 append , string 也属于 tuple 相同点: 都可以使用 for 循环 : for i in list(or tuple): 2. python 的函数,自带几个属性: __doc__, __name__, __call__ same to module. 一个 .py 文件就是一个 module, 其 __name__ 的值有两种取法!当 import 的时候,是文件名,当命令行 run 的时候是 __main__ ! 3. module 之内除了函数,还可以定义 class 。 class 内的函数的第一个参数都是 self ,用来传递当前 class 的实例(对象)的 name 。 class 对应的实例生成的时候,自动 run 函数 __init__() ,实例名字的同名函数为 __call__ 函数。 4. 对于函数的不带括号引用,是传递函数名称! https://blog.csdn.net/taohuaxinmu123/article/details/50353236 5. 下划线 _ 是什么意思?空,不要,一般在被传递的一方,即等号左边。 6. numpy.triu_indices(n,1) 可以得到右上三角矩阵,处理 n(n-1)/2 个 pairs 之间的计算很方便。 7. 怎么组合矩阵? https://morvanzhou.github.io/tutorials/data-manipulation/np-pd/2-6-np-concat/ np.hstack((A,B)) 8. python 与 c 语言 for 循环的不同: https://blog.csdn.net/weixin_40314737/article/details/80893365 for in 语句得到的是一个序列。 9.python 在 vim 下的 tab 错误: https://stackoverflow.com/questions/880668/how-to-avoid-indentation-error-after-changing-tab-stops-in-vim tabs settabstop=4 setshiftwidth=4 setexpandtab 毕竟默认的 tabstop=8 太长了。 10. python 的字典,怎么得知字典的大小? len() 所有内容呢? dict.items()
一层循环: data1-matrix(c(1:15),nrow = 5, ncol=3, byrow=TRUE) data1 sum_my-function(x){ sum(x) } col.sums - apply(data1, 2, sum_my) col.sums row.sums - apply(data1, 1, sum_my) row.sums # sum_my can be changed into any function using column or row as input ########### For example ### correlation with a vector data1-matrix(c(1:15),nrow = 5, ncol=3, byrow=TRUE) data1 data_4cor - c(1,3,2) sum_cor-function(x){ cor(x,data_4cor) } row.cor - apply(data1, 1, sum_cor) row.cor ########## 二层循环: (数据框) data2-as.data.frame(data1) x - data2 y - data2 bl - lapply(x, function(u){ lapply(y, function(v){ # function(u,v) # Function with column from x and column from y as inputs cor(u,v) # As an example }) }) out = matrix(unlist(bl), ncol=ncol(y), byrow=T) out (向量) data3- c(1:9) x - data3 y - data3 bl - lapply(x, function(u){ lapply(y, function(v){ sum(u,v) # Function with each data from x and column from y as inputs }) }) out = matrix(unlist(bl), ncol=length(y), byrow=T) out
1, for((i=1;i=10;i++)); do 命令 ; done ; 命令中使用变量i的时候需要用$进行引用。如: (1)for((i=1;i=10;i++)); do touch "testfile_$i" ; done ; (2)for((i=1;i=10;i++)); do touch testfile$i ; done ; 其中do和done之间可以用多条命令,命令之间用分号分隔。如: for((i=1;i=3;i++));do touch file$i;mv file$i xxx$i;done; 2, for i in $(seq 5 10); do 命令; done ; $(seq 5 10):相当于一个数组列表。$seq(10)的时候,相当于从1开始到10结束。 其中命令使用到i的时候需要用$i,如: for i in $(seq 5 10); do echo $i done ; 3,for i in `用命令获得一个数组` for i in `ls` ; do rm -rf $i; done; 用ls获得文件名数组,然后用rm实现逐个删除。 4,提取某些特征文件,存放在数组中,然后逐个提取,逐个操作 for i in *.txt ; do echo $i; done; 5,具体设置文件名列表,然后对每个文件操作 for i in 1 5.txt 2 7.txt; do 命令 $i; done; 6,提前构造空格分隔的字符串,并且存放到环境变量中,然后在环境变量中逐个提取 LIST="ABC BDE MMF" for i in $LIST; do echo $i ;done; 7,不用提前构造字符串环境变量,直接使用各个字符串 for i in abc efg pky; do echo $i; done;
作为一个具有脚本编程能力的命令行程序,循环语句是必不可少的。gnuplot 具有和 C 语言类似的 for 循环结构,可以应用于 plot, splot, set 和 unset 命令。 for 命令的基本结构是: for 这表示 i 的取值从 begin 到 end ,步长为 step 。如果步长为 1, step 也可以省略。下面举例说明: gnuplot f(x,s) = exp(-x*x/(2.*s))/(sqrt(2*pi*s)) gnuplot set term wxt enhanced gnuplot set title "Normal Distribution" gnuplot set samples 1000 gnuplot set style fill transparent solid 0.3 noborder gnuplot plot for f(x,i) w filledcurves title "σ^2 = ".i plot 命令里的 i 取值分别为 1, 4, 7, 10。值得注意的还有后面的 title 参数,这里的小数点(.)表示将两个字符串连接合为一个。有人可能会想: i 不是整数吗?在 gnuplot 里面,数据类型可能根据环境发生变化,例如这里的整数 i 用在了字符串操作中,就被当作字符串处理了。但是,如果把这个 i 放在小数点前面,这种类型转换就不成立了。我不清楚这种情况的具体成因,但是有一个办法可以解决这个问题,就是在 i 之前再加一个空的字符串,避免 i 成为字符串连接算符(小数点)的第一个元素。 除了上面的形式, for 命令还有一种字符串形式,例如: gnuplot plot for filename with lines 这里就绘制了三个数据文件的图像。