Python Numpy的一些操作可以极大的加快你的code运行速度
来源:互联网 发布:怎么举报网络棋牌游戏 编辑:程序博客网 时间:2024/05/16 20:48
如果你在进行大矩阵运算的时候,想必大家最想用的肯定是python的numpy数据格式把。但是以前的我,只会用for循环(反正只要达到目的),但是当你有个几十w行的feature,每个有几千维的时候,那真是要处理无数无数无数无数天啊!!!于是,经导师的一番“刺激”后,小肚决定用:矩阵运算大发提高运算速率。效果显著!能提高180倍。So,我之前是干嘛了?[微博狗的表情]
—————–踩坑无数,总结了这篇系统的文章,如果喜欢,欢迎大家浏览—————
1. 最大最小值
np.max(X, axis=0) #每一列的最大值np.min(X, axis=0) #每一列的最小值np.max(X, axis=1) #每一行的最大值np.min(X, axis=1) #每一行的最小值######从这里总结出,axis=0是对列的处理,axis=1是对行的处理,缺省时时对所有的元素进行最大最小值求取。对以后的函数也是这样的####
2. 改变numpy的行列数目
X.reshape((m,n)) #将X变成m行n列的矩阵。但是X.shape[0]*X.shape[1] = m*n (针对二维数组而言,其他的也要保证重塑后元素的个数不会改变)
3. 复制numpy的行或者列
X.repeat(m, axis=0) #将X按列进行复制m行。即如果X是(x1, y1),则复制后变为(x1*m, y1)。即把(x1, y1)复制m遍“放在下面”。X.repeat(m, axis=1) #将X按行进行复制m列。即如果X是(x1, y1),则复制后变为(x1, y1*m)。即把(x1, y1)复制m遍“放在右边”。#axis缺省时时将X的每一个元素复制m次,并按照“先行后列”的顺序拉为1维。e.g. a = np.array([[1,2,3],[4,5,6]]) a.repeat(2) = array([1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6])
4. numpy转置
X.transpose()
5. L2 L1norm
np.linalg.norm(X, ord=1, axis=1) #ord=1表示是L1 norm,ord=2表示是L2norm,axis=1表示是对行进行norm,axis=0表示是对列进行norm,缺省时对所有的进行norm。
6. 求均值和方差,标准差
np.mean(X, axis=1) #axis=1表示是对行进行求均值,axis=0表示是对列进行求均值,缺省时对所有的元素求均值。np.std(X, axis=1) #axis=1表示是对行进行标准差求取,axis=0表示是对列进行标准差求取,缺省时对所有的元素求均值。np.var(X, axis=1) #axis=1表示是对行进行方差求取,axis=0表示是对列进行方差求取,缺省时对所有的元素求均值。
7. 求内积
np.dot(X, Y) #其中X=(m,n), Y=(n,z)必须保证X的列数和Y的行数相同
8. 判断元素在不在numpy中
if num in X: #num是不是在X中if num in X[1,0:5]: #num是不是在X的第一列的前5个元素中
9. numpy排序
由于我的目的就是将每一行中的元素分别按照从大到小的顺序排序,所以我用第二个函数就好。这里不细讲其他的排序方法,详情请见我参考的博客。
np.argsort(X, axis=1) #对X的每一行中的元素“分别”进行排序,返回的是从小到大的元素的位置信息。axis=0时是对X的每一列中的元素“分别”进行排序,缺省时axis=1np.argsort(-X, axis=1) #返回的是从大到小的元素的位置信息。
阅读全文
0 0
- Python Numpy的一些操作可以极大的加快你的code运行速度
- 加快系统的运行速度
- 加快R的运行速度
- 如何让你的SQL语句运行起来加快速度
- 加快程序运行速度的技巧
- Win7加快系统运行速度的方法
- 加快程序运行速度的技巧
- 加快MATLAB运行速度的三个方法
- 加快AndroidStudio运行速度的方法
- 如何加快AS的运行速度
- Eclipse-加快eclipse的运行速度
- 加快AndroidStudio运行速度的方法
- 如何加快你的网站显示速度?
- 加快你打开浏览器主页的速度
- 善用免费的Code Snippet Libraries加快你的开发速度
- 善用免费的Code Snippet Libraries加快你的开发速度
- love2d 的所有默认配置如下,禁止一些不用的模块,可以轻微加快速度。
- 加快软盘操作速度的汇编程序源代码
- codeforces 837B Flag of Berland
- 2017年8月5日21:44:07
- 归一化处理
- 关于TINA仿真软件的模型库的添加
- bzoj1010 [HNOI2008]玩具装箱toy(斜率优化)
- Python Numpy的一些操作可以极大的加快你的code运行速度
- Integer.valueOf()和Integer.parseInt()区别
- 【gitHub】gitHub入门教程
- Unity3D 使用DoTween配置界面元素动画
- 内存对齐正式原则
- 用Nginx和FTP协议上传图片(文件)时注意点
- cb的一些小技巧
- java switch case 语句
- 二叉树3——三种遍历(递归方法)