【发布时间】:2016-10-24 00:31:23
【问题描述】:
我想制作一个 5 行 4 列的矩阵。问题是当我运行它时出现一个错误“Traceback(最近一次调用最后一次): 文件“C:\Users\yasini\Desktop\30.py”,第 21 行,在 ['ART|Ф',0.71], ['N|Ф',0.29], ['V|Ф',0.0001], ['P|Ф',0]]).reshape(5,4) ValueError: 新数组的总大小必须不变”。
我该如何解决?
import numpy as np
A = np.array([['ART|ART',0], ['N|ART',1], ['V|ART',0], ['P|ART',0],
['ART|N',0.0001], ['N|N',0.13], ['V|N',0.43], ['P|N',0.44],
['ART|V',0.65], ['N|V',0.35], ['V|V',0.0001], ['P|V',0.0001],
['ART|P',0.74], ['N|P',0.26], ['V|P',0.0001], ['P|P',0.0001],
['ART|Ф',0.71], ['N|Ф',0.29], ['V|Ф',0.0001], ['P|Ф',0]]).reshape(5,4)
print (A)
【问题讨论】:
-
错误告诉你问题所在,你为什么要问我们?您的初始数组有 20*2=40 个元素,您想将其重塑为 5*4=20 元素数组。
-
因为您创建的矩阵没有 5 行 4 列。您需要删除其中一些:[ ]
-
当我从最后一个单元格(['P|Ф',0])中省略零时,它可以正常工作并生成一个 5*4 矩阵,但是当我再次添加零时,会发生此错误
-
打印你的“矩阵”,你会发现它不是你想的那样! “矩阵”是 2d 的,你得到的是一种定义不明确的 3d 数组......(每个单元格包含一个包含 2 个元素的列表,除了最后一个只有 1 个元素)
-
也许共享所需的输出会有所帮助,因为您似乎对维度的数量感到困惑......