Python:如何使用Python生成随机稀疏对称矩阵?

2024-01-29

如何使用python生成随机稀疏对称矩阵?

在 MATLAB 中,我们有一个函数“sprandsym(大小,密度) http://www.mathworks.fr/help/matlab/ref/sprandsym.html"

但如何在 Python 中做到这一点呢?


如果你有 scipy,你可以使用稀疏随机 https://docs.scipy.org/doc/scipy-0.19.1/reference/generated/scipy.sparse.random.html. The sprandsym下面的函数生成一个稀疏随机矩阵 X,取其上三角一半,并将其转置与其自身相加以形成对称矩阵。由于这会使对角线值加倍,因此对角线会减去一次。

非零值服从均值 0 和标准差的正态分布 1. Kolomogorov-Smirnov 检验用于检查非零值是否为 与正态分布图和直方图一致 还生成 QQ 图来可视化分布。

import numpy as np
import scipy.stats as stats
import scipy.sparse as sparse
import matplotlib.pyplot as plt
np.random.seed((3,14159))

def sprandsym(n, density):
    rvs = stats.norm().rvs
    X = sparse.random(n, n, density=density, data_rvs=rvs)
    upper_X = sparse.triu(X) 
    result = upper_X + upper_X.T - sparse.diags(X.diagonal())
    return result

M = sprandsym(5000, 0.01)
print(repr(M))
# <5000x5000 sparse matrix of type '<class 'numpy.float64'>'
#   with 249909 stored elements in Compressed Sparse Row format>

# check that the matrix is symmetric. The difference should have no non-zero elements
assert (M - M.T).nnz == 0

statistic, pval = stats.kstest(M.data, 'norm')
# The null hypothesis is that M.data was drawn from a normal distribution.
# A small p-value (say, below 0.05) would indicate reason to reject the null hypothesis.
# Since `pval` below is > 0.05, kstest gives no reason to reject the hypothesis
# that M.data is normally distributed.
print(statistic, pval)
# 0.0015998040114 0.544538788914

fig, ax = plt.subplots(nrows=2)
ax[0].hist(M.data, normed=True, bins=50)
stats.probplot(M.data, dist='norm', plot=ax[1])
plt.show()

附言。我用了

upper_X = sparse.triu(X) 
result = upper_X + upper_X.T - sparse.diags(X.diagonal())

代替

 result = (X + X.T)/2.0

因为我无法说服自己,其中的非零元素(X + X.T)/2.0有正确的分布。首先,如果X是稠密且正态分布的,平均值为 0,方差为 1,即N(0, 1), then (X + X.T)/2.0将会N(0, 1/2)。当然我们可以通过使用来解决这个问题

 result = (X + X.T)/sqrt(2.0)

反而。然后result将会N(0, 1)。但还有一个问题:如果X是稀疏的,那么在非零位置,X + X.T通常是正态分布的随机变量加零。除以sqrt(2.0)会将正态分布压缩为更接近 0,从而提供更紧密的尖峰分布。作为X变得越来越稀疏,这可能越来越不像正态分布。

因为我不知道什么分布(X + X.T)/sqrt(2.0)生成,我选择复制上三角的一半X(从而重复我所知道的正态分布的非零值)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python:如何使用Python生成随机稀疏对称矩阵? 的相关文章

  • 没有任何元数据的 zip 文件

    我想找到一种简单的方法来压缩一堆文件 而无需任何文件元数据 例如时间戳 这zip命令似乎总是保留元数据 我没有找到禁用元数据的方法 我希望解决方案是一个命令或最多一个 python 脚本 谢谢 正如一些帖子已经指出的那样 zip 标头中的大
  • 行未从树视图复制

    该行未在树视图中复制 我在按行并复制并粘贴到未粘贴的任何地方后制作了弹出复制 The code popup tk Menu tree opportunity tearoff 0 def row copy item tree opportun
  • 为什么 .setGeometry() 不改变 QWidget 实例的大小?

    我想使用 QWidget 更改 QPushButton 的大小 setGeometry https doc qt io qtforpython 5 PySide2 QtWidgets QWidget html PySide2 QtWidge
  • 在Python3.6中调用C#代码

    由于完全不了解 C 编码 我希望在我的 python 代码中调用 C 函数 我知道有很多关于同一问题的问答 但由于一些奇怪的原因 我无法从示例 python 模块导入简单的 c 类库 以下是我所做的事情 C 类库设置 我使用的是 VS 20
  • on_delete=models.PROTECT 和 on_delete=models.CASCADE 在 Django 模型上有什么作用?

    我对 Django 很熟悉 但最近注意到有一个on delete models CASCADE and on delete models PROTECT模型的选项 on delete models CASCADE and on delete
  • 从字符串到类型的词法转换

    最近 我尝试用Python存储和读取文件中的信息 遇到了一个小问题 我想从文本文件中读取类型信息 从 string 到 int 或 float 的类型转换非常有效 但从 string 到 type 的类型转换似乎是另一个问题 当然 我尝试了
  • 如何使用Python将WebP图像转换为Gif?

    我已经尝试过这个 from PIL import Image im Image open this webp im save that gif gif save all True 这给了我这个错误 类型错误 不支持的操作数类型 tuple
  • 可以在 TensorFlow 中使用排名相关作为成本函数吗?

    我正在处理偶尔充满异常值的极其嘈杂的数据 因此我主要依靠相关性来衡量我的神经网络的准确性 是否可以明确使用诸如等级相关性 斯皮尔曼相关系数 之类的东西作为我的成本函数 到目前为止 我主要依赖 MSE 作为相关性的代理 我现在面临三个主要障碍
  • 带图像的简单 GUI [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我试图在简单的 GUI 上显示一些卡
  • 如何限制Django CreateView中ForeignKey字段的选择?

    我有一个沿着这些思路的模型结构 models py class Foo models Model class Bar models Model foo models ForeignKey Foo class Baz models Model
  • 如果字段值在外部列表中,Django 会注释布尔值

    想象一下我有这个 Django 模型 class Letter models Model name models CharField max length 1 unique True 还有这个列表 vowels a e i o u 我想查询
  • 如何使用 python urllib 在 HTTP/1.1 中保持活力

    现在我正在这样做 Python3 urllib url someurl headers HOST somehost Connection keep alive Accept Encoding gzip deflate opener urll
  • 创建一个类似于 Tkinter 的表

    我希望创建类似于 Tkinter 中的表格的东西 但它不一定是这样的 例如 我想创建标题 Name1 Name2 Value 并在每个标题下面有几个空白行 然后 我希望稍后用我计算的值或名称的字符串值填充这些行 因此是标签 对于 Name2
  • spacy 如何使用词嵌入进行命名实体识别 (NER)?

    我正在尝试使用以下方法训练 NER 模型spaCy识别位置 人 名和组织 我试图理解如何spaCy识别文本中的实体 但我无法找到答案 从这个问题 https github com explosion spaCy issues 491在 Gi
  • conda-env list / conda info --envs 如何查找环境?

    我一直在尝试 anaconda miniconda 因为我的用户使用随 miniconda 安装的结构生物学程序 并且作者都没有 A 考虑到可能存在其他 miniconda 应用程序 B 他们的程序将在多用户环境中使用 因此 使用 Arch
  • select() 可以在 Windows 下使用 Python 中的文件吗?

    我正在尝试在 Windows 下运行以下 python 服务器 An echo server that uses select to handle multiple clients at a time Entering any line o
  • Matplotlib Scatter - ValueError:RGBA 序列的长度应为 3 或 4

    我正在尝试为我的功能绘制图表 但不断收到此错误 ValueError RGBA sequence should have length 3 or 4 每当我只有 6 种形状时 代码就可以完美运行 但现在我将其增加到 10 种 它就不起作用了
  • Python 3.2 中 **kwargs 和 dict 有什么区别?

    看起来Python的很多方面都只是功能的重复 除了我在 Python 中的 kwargs 和 dict 中看到的冗余之外 还有什么区别吗 参数解包存在差异 许多人使用kwargs 并通过dict作为论据之一 使用参数解包 Prepare f
  • 如何在sphinx中启用数学?

    我在用sphinx http sphinx pocoo org index html与pngmath http sphinx pocoo org ext math html module sphinx ext pngmath扩展来记录我的代
  • TypeError:无法使用抽象方法实例化抽象类 <...>

    这是我的代码 from abc import ABC from abc import abstractmethod class Mamifiero ABC docstring for Mamifiero def init self self

随机推荐

  • android.view.WindowManager$BadTokenException 异常。有什么指针吗?

    我有两个 webview 为了从两个 webview 中删除通用功能 我创建了一个超类 其中包含超类中的所有方法 并在两个 webview 中使用它 有一次 当我创建对象并设置第一个 Web 视图中的变量时 Web 视图正确显示 当我按 返
  • Javascript 闭包/变量作用域问题 - 我知道它有效,但为什么?

    我用 JS 开发已经有一段时间了 虽然我知道下面的代码可以工作 但我不太明白why有用 在我看来 我在 testClosure 函数中定义了 testString 并且我期望该变量在 testClosure 函数完成时 消失 因为它是局部变
  • 创建属性设置器委托

    我创建了将属性 lambda 转换为委托的方法 public static Delegate MakeGetter
  • 在 C# 中通过 AWS.NET 从 S3 存储检索二进制数据

    我已经测试了适用于 NET 的 AWS 开发工具包中包含的大部分示例 它们都运行良好 我可以将对象 列表对象和删除对象放入存储桶中 但是 假设我删除了原始对象并想要同步本地丢失的那些文件 我想创建一个 GET 对象 按键 名称和原因桶 我可
  • 如何为Lua表添加前缀?

    我有一个lua文件 其内容为lua表如下 A A B A B C 0 问题是我想在上述每个语句之前添加前缀 XYZ 因此 解析之后数据库应该有这样的内容 XYZ A XYZ A B XYZ A B C 有任何想法吗 提前致谢 您可以使用以下
  • 熊猫表查找

    我有一个熊猫查找表 看起来像这样 Grade Lower Boundary Upper Boundary 1 110 96 2 96 91 3 91 85 4 85 81 5 81 77 6 77 72 7 72 68 8 68 63 9
  • SVG 和 Javascript - 创建 SVGPoint - TypeError:非法构造函数

    我正在尝试使用 Javascript 创建 SVG 多边形 当我尝试使用以下 Javascript 代码创建 SVGPoint 时 var p new SVGPoint 我收到以下消息 类型错误 非法构造函数 您需要从您的 SVG 文档中调
  • Espresso:如何滚动到 ScrollView 的底部

    在 Espresso 测试中如何向下滚动到 ScrollView 的底部 谢谢 如果在 ScrollView 的底部您需要找到一个视图并与之匹配某些内容 那么只需执行scrollTo 在需要显示它的任何其他操作之前对其执行操作 onView
  • C# 中的 Windows 时区下拉菜单 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 是否有一种简单的方法可以在 C 应用程序中显示 Windows 时区下拉列表 以便用户可以更改它 类似于这个时区下拉菜单 https
  • 不要从 UITableView 中删除某些行

    我正在尝试实现从 a 中删除一些行的功能table view而不是其他人 在这种情况下 一切都在section 0不应该被删除 所以也不能滑动删除 但是里面的所有内容section 1应该可以 我怎样才能实现这个 现在section 0ro
  • Ui 表单:添加运行时还是编译时?

    如果我有大量 UI 表单 我想知道哪种方法有效 我对这两种情况下的内存利用率没有任何想法 我只是在一个简单的示例中尝试了两种方法 http qt project org doc qt 4 8 designer using a ui file
  • 检查 C 枚举中是否定义了某个值?

    假设我有这个 enum A 0x2E B 0x23 C 0x40 可以检查是否x被定义为enum 我正在手动执行此操作 int isdef x A x B x C 但我想要更有活力的东西 GCC extensions也欢迎 据我所知并非如此
  • 你可以在CSS文档中使用handlebars.js变量吗?

    我有兴趣做一些条件格式并认为最好的方法是做类似的事情 InsideCSSdocument if something some css else some other css if 但我搜索了一下 只发现Django相关的东西 这在车把或任何
  • 下载S3并添加到应用程序目录

    我有一个正在尝试设置的弹性 beanstalk Node 应用程序 我正在尝试将环境文件从 S3 加载到 var app ondeck src 因此该文件在 Node 应用程序启动时可用 我已经尝试了尽可能多的方法 但 production
  • 什么是双变量参数? ~ 打字稿

    TypeScript 的文档附带编译器选项 https www typescriptlang org docs handbook compiler options html 其中 strictFunctionTypes是用它的描述来定义的
  • Python tkFileDialog.asksaveasfile - 获取文件路径

    我想获取文件 exportFile 的路径 exportFile tkFileDialog asksaveasfile mode a 如果我写 打印导出文件 我会得到
  • 想要延迟 1 秒显示数字

    我想在 TextView 中显示数字 如下所示 Wait 5 sec then a delay of 1 sec Wait 4 sec display this in the same text view along with delay
  • 哪里可以获取以前版本的 iOS 磁盘映像? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我刚刚成为 iOS 开发者计划的成员 我正在阅读 iOS 开发者计划用户指南文档 它说 从 iOS 开
  • GPL 对 javascript 库的限制 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 如果我在我的网站上使用 GPL 许可的 JavaScript 组件 是否会被视为向公众发布 因为组件的客户端代码通过 http 加载到用户的浏览器 并
  • Python:如何使用Python生成随机稀疏对称矩阵?

    如何使用python生成随机稀疏对称矩阵 在 MATLAB 中 我们有一个函数 sprandsym 大小 密度 http www mathworks fr help matlab ref sprandsym html 但如何在 Python