Python Numpy:从JSON文件加载数据会得到带有嵌套列表的np数组
我以列表的形式从JSON文件加载数据,然后生成一个NumPy数组 JSON文件的结构如下Python Numpy:从JSON文件加载数据会得到带有嵌套列表的np数组,python,json,numpy,Python,Json,Numpy,我以列表的形式从JSON文件加载数据,然后生成一个NumPy数组 JSON文件的结构如下 { "label": "4", "mfcc": [ [ [ -147.2358550730904, 52.60503152410914, <more values Total=13>
{
"label": "4",
"mfcc": [
[
[
-147.2358550730904,
52.60503152410914,
<more values Total=13>
],
<more arrays Total=44>
看起来最外层的列表被转换为NumPy数组,而内部列表仍然是列表。见下图:
发生了什么事
提前谢谢 这意味着该文件包含一个包含列表的numpy数组
- 两者都是故意的
- 您(或某人)试图将列表列表转换为numpy数组,但嵌套列表的长度不尽相同(numpy数组需要相同的长度)。因此,numpy不会创建一个合适的2D numpy数组,而是创建一个包含列表的一维numpy数组。要解决此问题,请确保所有嵌套列表的长度相同(例如,您可以使用
填充它们)0
np.array(alist)
仅当列表中的嵌套是规则的(如numpy.array
docs所示)时,才会给出一个好的多维数组。因此,仅仅说文件是JSON对我们没有帮助。我已经添加了JSON文件数据[“mfcc”]
看起来确实像一个列表,但它可能不够规则,无法转换为多维数组。列表是不规则的。我在代码中添加了一个条件,使JSON文件能够处理它。谢谢。第二点不成立。JSON文件中的数据是完整的。请检查JSON文件。缺少的值是冒名顶替者。谢谢发现问题。请不要忘记验证答案或将答案添加到问题中,以供将来的读者使用
with open("data.json", 'r') as file:
data = json.load(file)
mfcc = np.array(data["mfcc"])