json文件怎么转换numpy数组?numpy怎么应用?

NumPy是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,那json文件要转换numpy数组应该怎么做?下面来我们就来给大家讲解一下这方面的内容。

我们用实例来讲解:

有一个MongoDB集合,当通过PyMongo导入到Python时,它是Python中的一个术语。 我想把它转换成一个Numpy数组。

例如,如果JSON文件如下所示:

{
"_id" : ObjectId("57065024c3d1132426c4dd53"),
"B" : {
"BA" : 14,
"BB" : 23,
"BC" : 32,
"BD" : 41
"A" : 50,
}
{
"_id" : ObjectId("57065024c3d1132426c4dd53"),
"A" : 1
"B" : {
"BA" : 1,
"BB" : 2,
"BC" : 3,
"BD" : 4
}

我想得到这个5*2 Numpy数组的回报: np.数组([[50,14,23,32,41], [1,1,2,3,4]]) 在这种情况下,第一列对应“A”,第二列对应“BA”,第三列对应“BB”等。 请注意,键并不总是按相同的顺序排序。

我的代码根本不起作用(而且还没有做我想做的事情),看起来是这样的:

from pymongo
import MongoClient
uri = "mongodb://localhost/test"
client = MongoClient(uri)
db = client.recodb
collection = db.recos
list1 = list(collection.find())
array2 = np.vstack([[product[key]
        for key in product.keys()]
    for product in list1])

假设您已经成功地将JSON加载到Python中,下面是创建所需Numpy数组的一种方法。我的代码有一个ObjectId的最小定义,这样它就不会在ObjectId条目上引发名称错误。

sorted(d["B"].items())]

从按键排序的“B”字典内容中生成(键,值)元组的列表。然后,我们只将这些元组中的值提取到列表中,并将该列表附加到包含“a”项中的值的列表中。

import numpy as np
class ObjectId(object):
    def __init__(self, objectid):
    self.objectid = objectid
def __repr__(self):
    return 'ObjectId("{}")'.format(self.objectid)
data = [
    
    {
        "_id": ObjectId("57065024c3d1132426c4dd53")
        , "B":
        {
            "BA": 14
            , "BB": 23
            , "BC": 32
            , "BD": 41
        }
        , "A": 50
},
    
    {
        "_id": ObjectId("57065024c3d1132426c4dd53")
        , "A": 1
        , "B":
        {
            "BA": 1
            , "BB": 2
            , "BC": 3
            , "BD": 4
        }
}
    
]
array2 = np.array([[d["A"]] + [v
        for _, v in sorted(d["B"].items())]
    for d in data])
print(array2)

输出

[[50 14 23 32 41]
    
[1 1 2 3 4]]

numpy怎么应用?

NumPy 通常与 SciPy(Scientific Python)和 Matplotlib(绘图库)一起使用, 这种组合广泛用于替代 MatLab,是一个强大的科学计算环境,有助于我们通过 Python 学习数据科学或者机器学习。

SciPy 是一个开源的 Python 算法库和数学工具包。

SciPy 包含的模块有最优化、线性代数、积分、插值、特殊函数、快速傅里叶变换、信号处理和图像处理、常微分方程求解和其他科学与工程中常用的计算。

Matplotlib 是 Python 编程语言及其数值数学扩展包 NumPy 的可视化操作界面。它为利用通用的图形用户界面工具包,如 Tkinter, wxPython, Qt 或 GTK+ 向应用程序嵌入式绘图提供了应用程序接口(API)。

NumPy 是一个运行速度非常快的数学库,主要用于数组计算,开发人员一定要会使用numpy,最后大家如果想要了解更多json工具教程知识,敬请关注奇Q工具网。

推荐阅读:

java怎么做实时监控系统?简单的web监控系统

初学java编程用什么书?初学者实用书籍

java有多少种数据类型?java有哪些常量?