先学了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]

参考:Python xrange与range的区别

一句Python,一句R︱numpy、array——高级matrix的更多相关文章

  1. python numpy array 与matrix 乘方

    python numpy array 与matrix 乘方 编程语言 waitig 1年前 (2017-04-18) 1272℃ 百度已收录 0评论 数组array 的乘方(**为乘方运算符)是每个元 ...

  2. numpy array或matrix的交换两行

    A[j,:] = A[maxindex,:] # 注意这样是一个很低级的错误!这样只是赋值 我们很容易想起python中的两个值交换一句搞定不用引入中间变量 a, b = b, a 但在numpy的a ...

  3. 使用python解线性矩阵方程(numpy中的matrix类)

    这学期有一门运筹学,讲的两大块儿:线性优化和非线性优化问题.在非线性优化问题这里涉及到拉格朗日乘子法,经常要算一些非常变态的线性方程,于是我就想用python求解线性方程.查阅资料的过程中找到了一个极 ...

  4. python(44):array和matrix的运算

    在NumPy中,array用于表示通用的N维数组,matrix则特定用于线性代数计算.array和matrix都可以用来表示矩阵,二者在进行乘法操作时,有一些不同之处. 使用array时,运算符 *  ...

  5. 找出numpy array数组的最值及其索引

    在list列表中,max(list)可以得到list的最大值,list.index(max(list))可以得到最大值对应的索引 但在numpy中的array没有index方法,取而代之的是where ...

  6. 一句Python,一句R︱数据的合并、分组、排序、翻转

    先学了R,最近刚刚上手python,所以想着将python和R结合起来互相对比来更好理解python.最好就是一句python,对应写一句R. python中的numpy模块相当于R中的matirx矩 ...

  7. 一句Python,一句R︱pandas模块——高级版data.frame

    先学了R,最近刚刚上手python,所以想着将python和R结合起来互相对比来更好理解python.最好就是一句python,对应写一句R. pandas可谓如雷贯耳,数据处理神器. 以下符号: = ...

  8. 一句python,一句R︱模块导入与查看、数据读写出入、数据查看函数、数据类型、遍历文件

    先学了R,最近刚刚上手python,所以想着将python和R结合起来互相对比来更好理解python.最好就是一句python,对应写一句R. pandas中有类似R中的read.table的功能,而 ...

  9. 一句python,一句R︱python中的字符串操作、中文乱码

    先学了R,最近刚刚上手python,所以想着将python和R结合起来互相对比来更好理解python.最好就是一句python,对应写一句R. pandas可谓如雷贯耳,数据处理神器. 以下符号: = ...

随机推荐

  1. ssh免秘钥登录

    简介 SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定:SSH 为建立在应用层基础上的安全协议.SSH 是目前较可靠,专为远程 ...

  2. oracle游标的知识点

    游标: 就是一个结果集(ResultSet) 游标语法: CURSOR 光标名 [(参数名 数据类型[,参数名 数据类型])] IS SELECT 语句; eg. cursor c1 is selec ...

  3. VSFTPD 源码安装升级

    /usr/local/sbin/vsd -v cp /usr/local/sbin/vsd /usr/sbin/vsd 制作启动脚本 vim /etc/xinetd.d/vsd disable = y ...

  4. 《收藏》对servlet原理讲解特别详细

    转载:http://blog.csdn.net/javaloveiphone/article/details/8154791 内容: 一.先从servlet容器说起:大家最为熟悉的servlet容器就 ...

  5. hexo建立github,gitcafe博客并实时同步的要点

    把hexo博客的源码和生成的页面实时同步到github和gitcafe. 用搜索引擎搜索"github 博客"等关键字会出现大量很好的文章教小白一步步搭建.我这里列出一些关键点,希 ...

  6. Oracle 12cR1 RAC 在VMware Workstation上安装(下)—静默安装

    Oracle 12cR1 RAC 在VMware Workstation上安装(下)—静默安装 1.1  静默安装 1.1.1  静默安装grid 安装之前使用脚本进行校验,确保所有的failed选项 ...

  7. BZOJ 1854: [Scoi2010]游戏 [连通分量 | 并查集 | 二分图匹配]

    题意: 有$n \le 10^6$中物品,每种两个权值$\le 10^4$只能选一个,使得选出的所有权值从1递增,最大递增到多少 一开始想了一个奇怪的规定流量网络流+二分答案做法...然而我还不知道怎 ...

  8. 使用VS Code开发asp.net core (上)

    本文是基于Windows10的. 下载地址: https://code.visualstudio.com/ insider 版下载地址: https://code.visualstudio.com/i ...

  9. qt中的多线程

    1.dialog.h #define DIALOG_H #include <QDialog>#include"mythread.h"namespace Ui {clas ...

  10. java 流输出的一些问题

    一.java流的控制首先要先准备一个文件,例如:File f = new File(d:/lol.txt); 二.可以使用如下指令创建流,用于不同的用途 1.FileInputStream,FileO ...