如何在Ironpython中使用矩阵(numpy)

欢迎加入BIM行业开发交流1群 群号:711844216

一、背景

小伙伴们在ironpython中可能有需要需要使用矩阵运算。在python中,大家知道我们可以使用numpy库,那么在ironpython中如何使用呢?

二、思路

思路1.在ironpython中通过numpy使用矩阵运算。

大家可以参考这篇文章:
https://stackoverflow.com/questions/29397540/how-to-install-numpy-and-scipy-for-ironpython27-old-method-doenst-work
但是,我们注意到对于ironpython中使用numpy,Jonathan March这样说道:
Microsoft stopped work on the IronPython project in 2012 in favor of supporting standard CPython. Those archived versions of numpy and scipy were built in 2011 (so contain no newer features or fixes), and are 32-bit-only. We do not plan to update them in any way.
翻译过来就是:
微软在2012年停止了IronPython项目的工作,转而支持标准的CPython。那些numpy和scipy的存档版本是在2011年构建的(因此不包含更新的功能或修复),并且只有32位版本。我们不打算以任何方式更新它们。
重点1:2011年构建的,已经很久没有更新了
重点2:只有32位版本(这里笔者没有测试,大家在64位上可以运行的话,可以评论中告诉我)
所以,可以分析出,这种方法对于当前(2019了),并不友好。笔者通过另外一种方法,同样实现了在Ironpython中使用矩阵,请看思路2.

思路2.在ironpython中通过Mapack使用矩阵运算

Mapack是IronPython官方推荐的一个矩阵运算库,详情参看下面网址连接:
http://opensimulator.org/git/opensim-libs-save/IronPython/IronPython-1.1.1/Tutorial/Tutorial.htm
网址中的,TUTORIAL 1 .Exercise 3 Task 2就介绍了Mapack的基本操作,
Task 2: Mapack - Loading the .NET libraries - AddReferenceToFile
笔者在代码中,也会有一个简单的介绍。
由于这个网站中提供的Mapack.dll下载地址不再有效,小伙伴们可以直接进Q群711844216获取

三、操作示例(使用Mapack)

#支持中文
# -*- coding: utf-8 -*- 
import clr
#小伙伴们把博主给你们的Mapack.dll放入一个路径,然后将这个路径导入
clr.AddReferenceToFileAndPath("E:\mac\Mapack.dll")
#然后导入这个dll中的所有函数
from Mapack import *
#构建一个2行2列的矩阵
m = Matrix(2, 2)
#值如下
'''
| 1 | 2 |
| 3 | 4 |
'''
m[0,0]=1
m[0,1]=2
m[1,0]=3
m[1,1]=4
#构建一个2行1列的矩阵
n = Matrix(2,1)
#值如下
'''
| 1 | 
| 2 | 
'''
n[0,0] = 1
n[1,0] = 2
#进行乘法运算,将结果存入d中
d=m*n;
print d

可以得到结果
| 5 |
| 11 |

方法小结:
加减法使用:m+n,m-n
乘除法使用:m*n,m/n
与代数的运算使用:m*3,m/3
转置使用:m.Transpose()

四、注意事项

矩阵的运算,两个运算矩阵的写法一定要匹配,相信小伙伴们在高中,大学应该都掌握的不错了,剩下的就是用上面的这些方法使用了。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值