我想定义一个没有初始化长度的二维数组,如下所示:
Matrix = [][]
但这给出了一个错误:
IndexError:列表索引超出范围
原文由 Masoud Abasian 发布,翻译遵循 CC BY-SA 4.0 许可协议
我想定义一个没有初始化长度的二维数组,如下所示:
Matrix = [][]
但这给出了一个错误:
IndexError:列表索引超出范围
原文由 Masoud Abasian 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果你真的想要一个矩阵,你最好使用 numpy
。 numpy
中的矩阵运算最常使用二维数组类型。创建新数组的方法有很多种;最有用的函数之一是 zeros
函数,它采用形状参数并返回给定形状的数组,并将值初始化为零:
>>> import numpy
>>> numpy.zeros((5, 5))
array([[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.]])
以下是创建二维数组和矩阵的其他一些方法(为了紧凑而删除了输出):
numpy.arange(25).reshape((5, 5)) # create a 1-d range and reshape
numpy.array(range(25)).reshape((5, 5)) # pass a Python range and reshape
numpy.array([5] * 25).reshape((5, 5)) # pass a Python list and reshape
numpy.empty((5, 5)) # allocate, but don't initialize
numpy.ones((5, 5)) # initialize with ones
numpy
提供了一个 matrix
类型,但 不再推荐 使用 它,将来可能会从 numpy
中删除。
原文由 senderle 发布,翻译遵循 CC BY-SA 4.0 许可协议
4 回答4.5k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
1 回答4.4k 阅读✓ 已解决
1 回答3.9k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
您在技术上试图索引一个未初始化的数组。在添加项目之前,您必须先用列表初始化外部列表; Python 将此称为“列表理解”。
#您现在可以将项目添加到列表中:
请注意,矩阵主要是“y”地址,换句话说,“y 索引”位于“x 索引”之前。
尽管您可以随意命名它们,但如果您对内部和外部列表都使用“x”并且想要一个非方形矩阵,我会以这种方式查看它以避免索引可能出现的一些混淆。