`
- 浏览:
1314006 次
- 性别:
- 来自:
江苏
-
pyulbas -> boost矩阵库的python封装
pyulbas 是对 boost ulbas 矩阵库的一个封装,同时可以方便的和numpy进行互操作
用法如下
import numpy
import pyublas
a = pyublas.zeros((5,5), flavor=pyublas.SparseBuildMatrix, dtype=float)
#SparseBuildMatrix是稀疏矩阵类型
#将第5行(行号从0开始),第2个元素赋值为19
a[4,2] = 19
#将第一行赋值为4
a[1]=4
#将a全部赋值为1
a[:]=1
#从a中切片出一个小矩阵
a[:3,:3]
#对a进行乘法运算,加,减类似
a=a*a
#可以添加一个小的块状矩阵
b = numpy.random.randn(2,2)
a.add_block(2, 2, b)
#打印出所有非0元素的位置和值
for i in a.indices():print i,a[i]
#a中非0元素的个数
print a.nnz
#对a中元素求和
print a.sum()
#array是什么意思???我没明白。。。也许array之后更快?
#更新,哦,我少看了一段:
"""
The SparseBuildMatrix flavor is designed for fastest possible assembly of sparse matrices, while the SparseExecuteMatrix flavor is made for the fastest possible matrix-vector product. There’s much more functionality here–don’t be afraid to peek into the source code.
"""
a_fast = pyublas.asarray(a, flavor=pyublas.SparseExecuteMatrix)
vec = numpy.random.randn(5)
res = a_fast * vec
print a_fast
print res
________________________________________________
另外,还有一个pyulbasext,不过看样子还没有写完。
不过是可以通过Boost Numeric Bindings(
http://mathema.tician.de/software/boost-bindings
)
来配合lapack作svd的(有现成的函数:代码见
http://d.hatena.ne.jp/blono/20080921/
)
此外这个人的blog不错,很多代码演示。
有空来给svd也封装一个python的接口:)
补充:
稀疏矩阵用[]的方式赋值很卡,要用set_element
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
Python Boost扩展模块是将C++的Boost库与Python语言相结合的一种工具,旨在增强Python的性能和功能。Boost库是一个开源的C++库集合,提供了大量的高效、跨平台的实用程序,包括数学算法、图形库、多线程支持、日期...
2.输出对比图、混淆矩阵图、预测准确率,运行环境Matlab2023及以上,配置Python的Catboost库。兼容测试链接:https://ww2.mathworks.cn/support/requirements/python-compatibility.html 3.代码特点:参数化编程、...
1.将boost的目录加入每一个工程的configuration properties -> c/c++ -> general additional -> include directories 中 2.将boost的lib目录加入每一个工程的configuration properties -> librarian -> general -> ...
2.输出对比图、混淆矩阵图、预测准确率,运行环境Matlab2023及以上,配置Python的Catboost库。兼容测试链接:https://ww2.mathworks.cn/support/requirements/python-compatibility.html 3.代码特点:参数化编程、...
2.输出对比图、混淆矩阵图、预测准确率,运行环境Matlab2023及以上,配置Python的Catboost库。兼容测试链接:https://ww2.mathworks.cn/support/requirements/python-compatibility.html 3.代码特点:参数化编程、...
2.输出对比图、混淆矩阵图、预测准确率,运行环境Matlab2023及以上,配置Python的Catboost库。兼容测试链接:https://ww2.mathworks.cn/support/requirements/python-compatibility.html 3.代码特点:参数化编程、...
使用boost.python 编写扩展python库,使用mfc例子调用扩展的python库。 myPydll 工程为扩展python库,生成文件myPydll.dll,将该文件拷贝到python解释器可搜索的路径下,如我的电脑就是“C:\Python26\DLLs”,并改...
boost 1.47在VS2010下编译好的静态库 release版本:libboost_python-vc100-mt-1_47.lib debug版本:libboost_python-vc100-mt-gd-1_47.lib
使用Boost库从python调用C ++代码 在这个简短的教程中,我将向您展示如何使用从python调用C ++代码。 我举一个非常简单的例子。 提高底数(幂)。 但是,我提出的方法可以使用更复杂的C ++接口/库/等来推广到无数的...
Boost.Python库是Boost库的一部分,它为C++程序员提供了与Python编程语言交互的接口。在给定的压缩包文件中,包含的是针对Visual Studio 2008(即VS2008)和Python 2.6环境下的Boost.Python库的编译版本,版本号为...
资源分类:Python库 所属语言:Python 资源全名:catboost-0.24.1-cp37-none-win_amd64.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
本项目实践以"人工智能-项目实践-搜索引擎-基于Boost库的简易搜索引擎"为主题,旨在通过使用Boost库来构建一个基础的搜索引擎,帮助初学者理解搜索引擎的工作原理并掌握相关编程技巧。 首先,我们需要了解Boost库。...
在电力电子领域,BUCK-BOOST转换器是一种广泛应用的直流-直流(DC-DC)变换器,它能够实现输出电压的升压或降压。在本主题中,我们将深入探讨"BUCK-BOOST双闭环电压电流设计",包括其工作原理、电路结构、控制策略以及...
Boost.Python库是Boost库的一部分,它为C++程序员提供了与Python编程语言无缝集成的工具。这个库使得C++函数和类能够被Python代码直接调用,反之亦然,极大地扩展了Python的功能,并且允许开发者利用C++的性能优势。...
在本案例中,我们将详细探讨如何在Caffe中编译Python 3.5版本,并特别关注必要的Boost库。 Boost库是一个开源的C++库集合,它提供了许多高级和实用的工具,以增强C++的功能,包括多线程、日期时间处理、正则表达式...
各个版本为:gcc-->4.8.5、openssl-->1.1.1、pam-->1.1.8、zlib-->1.2.7 openssh-update ├── boost-serialization-1.53.0-28.el7.x86_64.rpm ├── boost-system-1.53.0-28.el7.x86_64.rpm ├── boost-thread...
// 第一行必须是#include <boost/python.hpp> // 否则会留下一点小问题 #include <vector> // 输出字符串 char const* greet() { return "hello, world"; } // 实现两个数字相加 int add(int x, int y) { return...
各个版本为:gcc-->4.8.5、openssl-->1.1.1、pam-->1.1.8、zlib-->1.2.7 openssh-update ├── boost-serialization-1.53.0-28.el7.x86_64.rpm ├── boost-system-1.53.0-28.el7.x86_64.rpm ├── boost-thread...
在"项目" -> "属性" -> "配置属性" -> "C/C++" -> "常规" -> "附加包含目录"中添加Boost库的头文件路径,在"链接器" -> "输入" -> "附加依赖项"中添加相应的库文件,如libboost_thread-vc141-mt-x64-1_73.lib(版本...