`
zuroc
  • 浏览: 1314006 次
  • 性别: Icon_minigender_1
  • 来自: 江苏
社区版块
存档分类
最新评论

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
2
0
分享到:
评论

相关推荐

    python专用boost扩展模块/boost_python-1.55.win32-py3.3.rar

    Python Boost扩展模块是将C++的Boost库与Python语言相结合的一种工具,旨在增强Python的性能和功能。Boost库是一个开源的C++库集合,提供了大量的高效、跨平台的实用程序,包括数学算法、图形库、多线程支持、日期...

    PSO-Catboost粒子群算法优化Catboost分类预测,优化前后对比(Matlab完整源码和数据)

    2.输出对比图、混淆矩阵图、预测准确率,运行环境Matlab2023及以上,配置Python的Catboost库。兼容测试链接:https://ww2.mathworks.cn/support/requirements/python-compatibility.html 3.代码特点:参数化编程、...

    vosm(vs2008)

    1.将boost的目录加入每一个工程的configuration properties -> c/c++ -> general additional -> include directories 中 2.将boost的lib目录加入每一个工程的configuration properties -> librarian -> general -> ...

    HO-Catboost河马算法优化Catboost分类预测,优化前后对比(Matlab完整源码和数据)

    2.输出对比图、混淆矩阵图、预测准确率,运行环境Matlab2023及以上,配置Python的Catboost库。兼容测试链接:https://ww2.mathworks.cn/support/requirements/python-compatibility.html 3.代码特点:参数化编程、...

    WOA-Catboost鲸鱼算法优化Catboost分类预测,优化前后对比(Matlab完整源码和数据)

    2.输出对比图、混淆矩阵图、预测准确率,运行环境Matlab2023及以上,配置Python的Catboost库。兼容测试链接:https://ww2.mathworks.cn/support/requirements/python-compatibility.html 3.代码特点:参数化编程、...

    SSA-Catboost麻雀搜索算法优化Catboost分类预测,优化前后对比(Matlab完整源码和数据)

    2.输出对比图、混淆矩阵图、预测准确率,运行环境Matlab2023及以上,配置Python的Catboost库。兼容测试链接:https://ww2.mathworks.cn/support/requirements/python-compatibility.html 3.代码特点:参数化编程、...

    boost.python 编写扩展python库

    使用boost.python 编写扩展python库,使用mfc例子调用扩展的python库。 myPydll 工程为扩展python库,生成文件myPydll.dll,将该文件拷贝到python解释器可搜索的路径下,如我的电脑就是“C:\Python26\DLLs”,并改...

    boost python静态库

    boost 1.47在VS2010下编译好的静态库 release版本:libboost_python-vc100-mt-1_47.lib debug版本:libboost_python-vc100-mt-gd-1_47.lib

    call-cpp-from-python-with-boost:使用Boost库从python调用C ++代码

    使用Boost库从python调用C ++代码 在这个简短的教程中,我将向您展示如何使用从python调用C ++代码。 我举一个非常简单的例子。 提高底数(幂)。 但是,我提出的方法可以使用更复杂的C ++接口/库/等来推广到无数的...

    boost python 1.49 编译的库文件

    Boost.Python库是Boost库的一部分,它为C++程序员提供了与Python编程语言交互的接口。在给定的压缩包文件中,包含的是针对Visual Studio 2008(即VS2008)和Python 2.6环境下的Boost.Python库的编译版本,版本号为...

    Python库 | catboost-0.24.1-cp37-none-win_amd64.whl

    资源分类:Python库 所属语言:Python 资源全名:catboost-0.24.1-cp37-none-win_amd64.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    人工智能-项目实践-搜索引擎-基于Boost库的简易搜索引擎

    本项目实践以"人工智能-项目实践-搜索引擎-基于Boost库的简易搜索引擎"为主题,旨在通过使用Boost库来构建一个基础的搜索引擎,帮助初学者理解搜索引擎的工作原理并掌握相关编程技巧。 首先,我们需要了解Boost库。...

    BUCK--BOOST双闭环电压电流设计

    在电力电子领域,BUCK-BOOST转换器是一种广泛应用的直流-直流(DC-DC)变换器,它能够实现输出电压的升压或降压。在本主题中,我们将深入探讨"BUCK-BOOST双闭环电压电流设计",包括其工作原理、电路结构、控制策略以及...

    boost python1.47编译的动态库文件

    Boost.Python库是Boost库的一部分,它为C++程序员提供了与Python编程语言无缝集成的工具。这个库使得C++函数和类能够被Python代码直接调用,反之亦然,极大地扩展了Python的功能,并且允许开发者利用C++的性能优势。...

    caffe编译python3.5需要的boost库

    在本案例中,我们将详细探讨如何在Caffe中编译Python 3.5版本,并特别关注必要的Boost库。 Boost库是一个开源的C++库集合,它提供了许多高级和实用的工具,以增强C++的功能,包括多线程、日期时间处理、正则表达式...

    openssh升级9.3p1所需的离线包

    各个版本为: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...

    能使用boost.python的MinGw(GCC)动态链接库

    // 第一行必须是#include <boost/python.hpp> // 否则会留下一点小问题 #include <vector> // 输出字符串 char const* greet() { return "hello, world"; } // 实现两个数字相加 int add(int x, int y) { return...

    openssh7.4p1 升级到 openssh9.6p1 所需的离线包

    各个版本为: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...

    Boost_thread库例程

    在"项目" -> "属性" -> "配置属性" -> "C/C++" -> "常规" -> "附加包含目录"中添加Boost库的头文件路径,在"链接器" -> "输入" -> "附加依赖项"中添加相应的库文件,如libboost_thread-vc141-mt-x64-1_73.lib(版本...

Global site tag (gtag.js) - Google Analytics