python - 用于创建任意大小的方阵的 Python 函数
问题描述
我需要创建一个函数,它可以采用未指定数量的参数(矩阵的元素)并返回相应的方阵。我已经使用以下方法实现了这一点。
def square_matrix(size, *elements):
numbers = list(elements)
if size ** 2 != len(numbers):
return "Number of elements does not match the size of the matrix"
else:
matrix = []
factor = 0
for i in range(0, size):
row = []
for j in range(factor * size, (factor + 1) * size):
row.append(numbers[j])
factor += 1
matrix.append(row)
i += 1
return matrix
print(square_matrix(3, 1, 2, 3, 4, 5, 6, 7, 8, 9))
# Output: [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
虽然这种方法适用于较小的矩阵,但它似乎有点低效,因为它使用嵌套循环并且对我来说显得不必要的长。有没有更好/更简洁的实现方式?
解决方案
只使用 NumPy 可以吗?
import numpy as np
def square_matrix(size, *elements):
return np.array(elements).reshape(size, size)
推荐阅读
- r - data.table 的 frollmean() 和 forecast 的 ma() 之间略有不同,顺序是偶数
- postgresql - 无法在 Mac 终端 ZSH 中打开 Postgres shell
- php - Laravel 问题,如何在 Blade 上使用 _GET
- r - 将数据表中的主题编号从低到高重新排序
- vba - 在电子邮件介绍后插入屏幕截图
- lua - 链接器找不到 lua 库
- python - 清理某个级别的json文件转换为系列
- java - 从 Java 到 Python 再返回的套接字
- arrays - 如何迭代对象 id 值?在 Vue.js 中
- python - 在 sympy 中分段积分时结果错误