精华内容
下载资源
问答
  • 如何在Ironpython中使用矩阵(numpy)

    千次阅读 2019-05-27 16:35:05
    一、背景 小伙伴们在ironpython中可能有需要需要使用...在python中,大家知道我们可以使用numpy库,那么在ironpython中如何使用呢? 二、思路 思路1.在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()

    四、注意事项

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

    展开全文
  • 这是在建立一个随机的某一行为0的矩阵,再将几个矩阵合在一起使用使用if else和newaxis就可以很好的解决这个问题 先用if的判断,让mask拥有一个初始的值,此时用newaxis让矩阵增加一维。在else,用concatenate...

    这是在建立一个随机的某一行为0的矩阵,再将几个矩阵合在一起使用了

    使用if else和newaxis就可以很好的解决这个问题

    先用if的判断,让mask拥有一个初始的值,此时用newaxis让矩阵增加一维。在else中,用concatenate进行合并即可

    for i in range(random_size):
        mask_id = random.randint(0, random_num)
        one_mask = np.ones([random_num-1, dimension])
        zero_mask = np.zeros([1,dimension])
        random_mask = np.insert(one_mask, mask_id-1, values=zero_mask, axis=0)
        # print(random_mask)
    
        if i == 0:
            mask = random_mask[np.newaxis, :]
        else:
            random_mask = random_mask[np.newaxis, :]
            mask = np.concatenate((mask, random_mask), 0)
    
    mask = torch.tensor(mask)
    # print(mask)
    
    展开全文
  • 假设data 是一个矩阵,则有如下表示情况 data(x,y) x是行数 y是列数 data(:,y)就是指y列对应的所有行的值组成的一个向量 data(:,[y1:y2]) 就是指y1到y2列的对应的所有行的值组成的一个矩阵 此外 data(:,...

    方法一:
    1、首先导入 numpy:

    1)import numpy

    2)from numpy import *

    3)import numpy as np

    2、定义array数组

    X=array([[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16],[17,18,19,20]])

    3、矩阵切片
    X[:,0]就是取矩阵X的所有行的第0列的元素,X[:,1] 就是取所有行的第1列的元素。

    X[:, m:n]即取矩阵X的所有行中的的第m到n-1列数据,含左不含右。

    X[0,:]就是取矩阵X的第0行的所有元素,X[1,:]取矩阵X的第一行的所有元素。

    方法二:

    假设data 是一个矩阵,则有如下表示情况
    data(x,y) x是行数 y是列数
    data(:,y)就是指y列对应的所有行的值组成的一个向量
    data(:,[y1:y2]) 就是指y1到y2列的对应的所有行的值组成的一个矩阵
    此外 data(:,[y1:y2])与data(:,y1:y2)结果是一样的
    因为y1:y2 默认为向量
    例:
    data=[1 2 3
    4 5 6
    7 8 9];
    data(1,2)=2
    data(:,2)=[2
    5
    8];
    data(:,[2:3])=[2 3
    5 6
    7 8];

    展开全文
  • 有个小伙伴想在dynamo中使用矩阵运算,翻译过来就是如何在Ironpython中使用矩阵运算。 这里给小伙伴们讲下python与Ironpython的区别 python:类似普通话,我们目前见到的python版本,基本上都是这个(比如现在很火的...

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

    一、背景

    有个小伙伴想在dynamo中使用矩阵运算,翻译过来就是如何在Ironpython中使用矩阵运算。
    这里给小伙伴们讲下python与Ironpython的区别
    python:类似普通话,我们目前见到的python版本,基本上都是这个(比如现在很火的机器学习),通常会使用numpy库来完成矩阵运算
    Ironpython:类似方言,在.net平台上的python版本,由于支持Ironpython的numpy库在2011年就已经不再更新了,所以博主给小伙伴们推荐另外一种在使用dynamo中使用矩阵运算的方法。
    开发环境:revit2018,dynamo2.0(最近几个版本应该都支持)

    二、思路

    通过Mapack在Ironpython中代替numpy来进行矩阵运算
    为什么在IronPython中使用Mapack而不是numpy,可以参考博主的另外一篇文章
    如何在Ironpython中使用矩阵(numpy)
    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下载地址不再有效,小伙伴们可以进群711844216,在常用Dll文件中找到Mapack.dll

    三、代码

    # 启用 Python 支持和加载 DesignScript 库
    # 支持中文
    # -*- coding: utf-8 -*- 
    import clr
    clr.AddReference('ProtoGeometry')
    from Autodesk.DesignScript.Geometry import *
    # 通过下面这两行代码,导入博主给小伙伴的Mapack.dll
    clr.AddReferenceToFileAndPath("E:\mac\Mapack.dll")
    from Mapack import *
    # 该节点的输入内容将存储为 IN 变量中的一个列表。
    dataEnteringNode = IN
    # 将代码放在该行下面
    #构建一个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=m*n;
    # 将输出内容指定给 OUT 变量。
    OUT =d
    

    可以得到结果(图片右下角)
    在这里插入图片描述
    方法小结:
    加减法使用:m+n,m-n
    乘除法使用:m*n,m/n
    与代数的运算使用:m*3,m/3
    转置使用:m.Transpose()

    注意事项

    1.在dynamo中使用第三方库,这个库文件一定是要支持IronPython而不是只支持Python的,博主后面会写一篇如何在dynamo中导入第三方库的方法,大家可以关注博主博客,得到最新文章;
    2.矩阵的运算,两个运算矩阵的写法一定要匹配,相信小伙伴们在高中,大学应该都掌握的不错了,剩下的就是用上面的这些方法使用了。
    3.如果小伙伴们觉得本文对您有帮助,可以给本文点个赞,并关注博主,博主后面会持续更新Revit二次开发相关文章.

    展开全文
  • 如何Python中实现矩阵分析

    千次阅读 2017-07-14 15:18:21
    矩阵分析 根据事物(如产品,服务等...如何使用Python进行矩阵分析呢 各个省份的GDP-人口矩阵分析,代码实现如下: import pandas import matplotlib import matplotlib.pyplot as plt mainColor = (42/256, 87/256, 14
  • python中我们定义二维矩阵使用 a = [[0]*5]*5 其输出结果为 如果对其某个位置上的数赋值,则 由于我们创建二维矩阵使用了浅复制,则在赋值过程会导致当一个数改变时,那一列的数都会随着改变,因为他们都...
  • 我对一个大型息数据正进行迭代计算后,得出的矩阵是csc格式的,并且该迭代计算只能...所以如何使用scipy.sparse函数实现csc矩阵转换为coo矩阵?在网上查找了一些资料,并没有看到什么有帮助的,所以请教大家。谢谢。
  • 1、实现源码 import numpy as np; n = np.array([[21,33,24,35,46,57,78], [20,34,46,57,69,28,12], [63,72,84,95,36,37,28], [19,33,24,13,45,30,41], ...
  • 写在前面:使用sklearn.datasets的load_svmlight_file()时获取到一个稀疏矩阵,因为初涉python,不敢轻易尝试稀疏矩阵运算,打算将其转化为numpy库的一般矩阵(matrix)。 稀疏矩阵形式: >>> print(data...
  • 在推荐系统,我们通常使用非常稀疏的矩阵,因为项目总体非常大...在真实的场景,我们如何最好地表示这样一个稀疏的用户-项目交互矩阵? 为什么我们不能只使用Numpy数组或panda数据流呢? 要理解这一点,我们必须理解
  • Python Pandas 构建共现矩阵

    千次阅读 2018-11-16 16:35:19
    作者共现、词共现等各种共现情况的研究需求在我们这个学科还是挺多的,来写一下如何使用Python构建共现矩阵。 基本思路 构建共现矩阵,我一个基本思路是先根据所有的目标对象构建一个单位矩阵,然后对目标对象的...
  • 本文介绍如何使用python实现矩阵的输入并求出矩阵的伴随矩阵。 伴随矩阵 设有一矩阵A 设Aij是矩阵A元素aij的代数余子式,那么矩阵A* 称为矩阵A的伴随矩阵 基本思路 先输入初始矩阵的阶数,再进行矩阵的录入 利用...
  • Python Pandas库的DataFrame对象如何将行和列相互倒换一下?--矩阵的转置 将DataFrame的行和列相互切换,在矩阵的操作上来说,就是转置,举个例子看一下: 创建一个df对象: df = pd.DataFrame(np.arange(16)....
  • 这篇文章是如何使用几种不同的矩阵分解算法计算相关艺术家的分步指南。代码用Python编写,使用 Pandas 和SciPy进行计算,D3.js以交互方式可视化结果。 加载数据 对于这里的帖子,我使用与 我的第一篇文章相同的...
  • 如何使用python中matplotlib库分析图像颜色中,我们将使用matplotlib的 image类在图像中找到主色 。查找主导色也是你可以使用第三方API进行的操作,但是我们将构建自己的系统来执行此操作,以便我们可以完全控制该...
  • 涉及到分类问题,我们经常需要通过可视化混淆矩阵来分析实验结果进而得出调参思路,本文介绍如何利用python绘制混淆矩阵(confusion_matrix),本文只提供代码,给出必要注释。 Code​ # -*-coding:utf-8-*- from ...
  • 在课题任务遇到了需要处理图像的Census变换,然后输出汉明码的问题,那么汉明码是一串二进制序列,并且要用矩阵的形式存储,矩阵中的每一个元素对应着一串汉明码。遇到以下几个问题: 汉明码作为一串二进制序列...
  • 1,python创建excel表格并填充矩阵数据 2,依次对每行求和并填入excel表格(不知道sum函数参数如何设定) 3,打开表格 已完成代码: import xlsxwriter workbook = xlsxwriter.Workbook('hello3.xlsx') ...
  • 线性代数是机器学习需要用到的重要数学工具之一,如何使用一门编程语言来处理线性代数是学习机器学习的基础之一。 文章目录所需环境线性代数基础知识矩阵基本运算矩阵的转置矩阵的加法/减法标量乘以矩阵 所需环境 ...
  • Numpy中如何矩阵增加一行或一列

    万次阅读 多人点赞 2016-03-06 16:27:55
    使用Python的numpy的array结构,如何矩阵增加一行或者一列呢? 下面提供一种方法,当然numpy还提供了很多API函数可供选择。
  • 这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、...
  • 本文首先简要介绍如何计算精度、召回率和F1值,其次给出python编写的模块,可直接将该模块导入在自己的项目,最后给出这个模块的实际使用效果。 混淆矩阵及P、R、F1计算原理 混淆矩阵 进行二分类或多分类任务...
  • 此代码是了解SGD如何矩阵分解工作的示例。 此代码在其中包含一个示例。 您可以直接运行它。 PMF.py的注意事项 该代码基于Sapphire1211( )的版本。 非常感谢! 这段代码是使用python 2.7.8版本开发的 此代码...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 505
精华内容 202
关键字:

python中如何使用矩阵

python 订阅