python - 制作随机整数矩阵
问题描述
我需要编写一个函数来获取行数和列数,并返回一个大小rows × columns
为 -10,10 之间的随机值填充的矩阵。
**需要在没有 NumPy、Pandas 等的情况下完成。
我写的:
Mat = []
def mf(r,c):
for i in range (0,c):
Mat.append([])
for i in range (0,r):
for j in range (0,c):
Mat[i].append(j)
Mat[i][j]=0
print(Mat)
mf(3,4)
如何插入-10,10范围内的随机值?
非常感谢任何帮助、提示或解决方案,我是一个具有非常基础知识的 Python 初学者。
提前谢谢了!
解决方案
>>> import random
>>> def randarray(r, c, lower=-10, upper=10, _randint=random.randint):
... return [[_randint(lower, upper) for col in range(c)]
... for row in range(r)]
...
>>> randarray(3, 2)
[[-1, -5], [-7, -8], [8, 7]]
>>> randarray(4, 2)
[[9, 1], [7, 5], [-1, -3], [-7, 9]]
在签名中使用的原因_randint=random.randint
是它将该函数绑定到该函数的本地名称randarray
。如果您有一个大型矩阵,其中反复调用 this,这将比该函数的全局查找更快。
列表理解本质上是说:
for each row:
for each column:
<random integer>
请注意,这randint()
包括两端。
如果您确实需要优化,请查看itertools.repeat()
.
推荐阅读
- twitter-bootstrap - 带有 Spring Boot 和 Bootstrap 的 Thymeleaf 在带有 PathVariable 的页面中不起作用
- bash - 在 Mac 上安装 Flutter 时编辑 .bash_profile 时出现问题
- php - 对嵌套数组进行排序时,PHP usort 函数返回不正确的结果
- mysql - 我该如何解决:列的数据太长导致:org.springframework.dao.DataIntegrityViolationException?
- angular - 如何从多个嵌套对象中获取唯一键
- numpy - 使用 Scipy 曲线拟合的低效曲线拟合
- typo3 - Typo3-9.x Felogin - 多域登录问题
- ios - 在 SwiftUI 中导航到另一个视图时如何摆脱动画故障
- python - Stackplot“TypeError:输入类型不支持ufunc'isfinite'”
- c# - 绑定到类的依赖属性时绑定不起作用(仅以一种方式工作)