【发布时间】:2018-09-07 15:59:09
【问题描述】:
我想创建一个包含矩阵元素的矩阵。 所以我做了很明显的事情并做了这个:
import numpy as np
A = np.array([1,2,3,1],[3,1,5,1])
B = np.array([1,6,8,9],[9,2,7,1])
E = np.array([A, B],[B, A])
但是编译器返回:TypeError:数据类型不理解
我可以做些什么来创建这样一个矩阵,因为我有非常大的矩阵而且我没有时间明确地写下每个人?
* 编辑 1:*
发生的其他问题:
我得到的不是一个 14x14 矩阵,而是一个多维 (2,2,7,7) 矩阵。在我最初的问题的简化版本中,一切都很好。任何想法为什么现在会发生这种情况?
在这种情况下,我有 Amat 7x7、Bmat 7x7、Emat 14x14、Smat 14x14
编辑 2
好的,我使用 np.block() 解决了问题,如下面的 cmets 所述。非常感谢。
【问题讨论】:
-
A=行有错误,不是吗?它甚至没有到达E步骤。换句话说,这是使用np.array的基本问题。 -
更正
np.array语法,对于您想要的内容仍有一些歧义。一个答案产生一个 (4,8) 数组,另一个产生 (2,2,2,4)。 -
一个吹毛求疵:你几乎肯定想要一个 NumPy array(类型
ndarray)而不是 matrix。区别很重要:NumPy 确实具有 矩阵类型,但使用起来可能很尴尬,并且并不总是与 NumPy 的其余部分或其他使用 NumPy 的库很好地集成。随着最近出现的用于矩阵式乘法的@运算符,使用矩阵类型的理由并不多。
标签: python arrays python-3.x numpy