先学了R,最近刚刚上手python,所以想着将python和R结合起来互相对比来更好理解python。最好就是一句python,对应写一句R。
python中的numpy模块相当于R中的matirx矩阵格式,化为矩阵,很多内容就有矩阵的属性,可以方便计算。
以下符号:
=R=
代表着在R中代码是怎么样的。
使用之前先载入:
from numpy import *
1、数列构造
构造单一数列
arange(10) =R=1:10 生成一个连贯的数列 arange(3,7) =R=3:7 arange(3,10,2) =R= seq(3, 9, by = 2) array(arange(4)) =R= matrix(1:4)
类似cut分组
np.linspace(2.0, 3.0, num=5) =R= cut(2:3,5) #类似cut功能,在2,3之间分成5份
matrix矩阵组
ma=arange(10).reshape(5,2) #matrix(rep(1:10),nrow=5,ncol=2) 按行或列生成一定规则的 ones((2,3), dtype=int) =R= matrix(rep(1,6),2,3) #矩阵内元素都为1 random.random((2,3)) =R= matrix(runif(6),2,3) #生成随机数
2、矩阵属性
ma.shape #输出5,2(矩阵横纵维度) ma.ndim =R=dim(ma) #维度,dim(data) ma.size #元素总数,5*2
3、矩阵运算
(arange(4).reshape(2,2))* (arange(8).reshape(2,2)) #组内数字相乘 dot( (arange(4).reshape(2,2)),(array([[1,2],[3,5]]))) #矩阵相乘 ma*=2 #ma=ma*2,会原地的改变数组而不是创建一个新的数组
4、矩阵运用函数
ma.sum() ma.min() ma.max() ma.sum(axis=0) =R=apply(b,1,sum) =R=colSums(data) #axis=0代表纵向,列;axis=1,代表横向 ma.cumsum(axis=1) #按行,累计加总的结果ma.sum/min代表所有元素加总.
参考文献:NumPy教程(一)
————————————————————————————————————————
延展一:array的用法
官方网址:https://docs.python.org/2/library/array.html
array模块定义了一种序列数据结构,看起来和list很相似,但是所有成员必须是相同基本类型。
array-固定类型数据序列array作用是高效管理固定类型数值数据的序列。
笔者在使用的时候,觉得array十分特别,笔者这样的新手,感觉有点驾驭不了。
1、生成的过程:
np.array([1,2])
需要np.,笔者在写的时候,常常用R的思维去写...
出错: array(1,2) array([1,2]) np.array([1,2],[1,2])
2、添加数据过程:
a=[] #append a.append([1,2]) #insert a.insert(2,1) a.insert(2,[1,2])
append加在后面,insert(位置,内容)可以加在指定位置。这边笔者又要吐槽自己了...以为又在使用R,如果a是array格式的,append是不可以使用的。只有a=[]元组的时候,才可以append加进去。
注意append用法:其中append用在list之中,在DataFrame/array无法使用
3、切片过程:
>>>Array[0:] ——>切片从前面序号“0”开始到结尾,包括“0”位 [2, 3, 9, 1, 4, 7, 6, 8] >>>Array[:-1] ——>切片从后面序号“-1”到最前,不包括“-1”位 [2, 3, 9, 1, 4, 7, 6] >>>Array[3:-2] ——>切从前面序号“3”开始(包括)到从后面序号“-2”结束(不包括) [1, 4, 7] >>>Array[3::2] ——>从前面序号“3”(包括)到最后,其中分隔为“2” [1, 7, 8]
4、numpy对象纵向合并
用numpy中的concatenation函数进行合并。
————————————————————————————————————————
延展二:range的用法
一开始还是R的思维以为[1:2]就可以得到一个序列,python里面不是,需要range,有点像R里面的rep
range(0,2) =R= [1,2]
range(0,10,2) 0-9每隔2个取数一次
xrange 用法与 range 完全相同,所不同的是生成的不是一个list对象,而是一个生成器。
>>> xrange(5) xrange(5) >>> list(xrange(5)) [0, 1, 2, 3, 4] >>> xrange(1,5) xrange(1, 5) >>> list(xrange(1,5)) [1, 2, 3, 4] >>> xrange(0,6,2) xrange(0, 6, 2) >>> list(xrange(0,6,2)) [0, 2, 4]