当前位置: 首页 > 知识库问答 >
问题:

Python对R的dput()函数的等效

潘志国
2023-03-14

Python中是否有类似于R中dput()函数的函数?

共有3个答案

邓阳伯
2023-03-14

这个答案主要关注json.dump()json.dumps()以及如何将它们用于numpy数组。如果您尝试,Python会提示您一个错误,即Ndarray不可JSON序列化:

import numpy as np
import json

a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
json.dumps(a)
TypeError: Object of type 'ndarray' is not JSON serializable

您可以通过先将其转换为列表来避免这种情况。请参见以下两个工作示例:

json.dumps()似乎最接近R的dput(),因为它允许您直接从控制台复制粘贴结果:

json.dumps(a.tolist()) # '[[1, 2, 3], [4, 5, 6], [7, 8, 9]]'

json.dump()dput()不同,但它仍然非常有用。json.dump()将您的对象编码为json文件。

# Encode:
savehere = open('file_location.json', 'w')
json.dump(a.tolist(), savehere)

然后你可以在其他地方解码:

# Decode:
b = open('file_location.json', 'r').read()   # b is '[[1, 2, 3], [4, 5, 6], [7, 8, 9]]'
c = json.loads(b)

然后,您可以再次将其转换回Numpy数组:

c = np.array(c)

关于避免“不可序列化”错误,请参见:

>

如何使类json序列化(有点不相关,但很有趣)

巩枫
2023-03-14

将Python对象序列化为文件有几个选项:

  • json.dump()以json格式存储数据。它是非常可读和可编辑的,但只能存储列表、dict、字符串、数字、布尔值,因此没有复合对象。要使json模块可用,您需要先导入json。
  • pickle.dump()可以存储大多数对象

不太常见:

  • Shelve模块将多个Python对象存储在DBM数据库中,主要表现为持久的dicing
  • marshal.dump():不知道你什么时候需要它。
习阳
2023-03-14

对于pandas.DataFrame打印(df.to_dict()),如下所示

 类似资料:
  • 问题内容: python中是否有类似于R中的dput()函数的函数? 问题答案: 有几种将Python对象序列化为文件的选项: 以JSON格式存储数据。它是非常可读和可编辑的,但是只能存储列表,字典,字符串,数字,布尔值,因此没有复合对象。您需要先使模块可用。 可以存储大多数对象。 不常见: 该模块将多个Python对象存储在DBM数据库中,大多数情况下就像一个persistent 。 :不确定何

  • 问题内容: 是否有Python函数类似于R中的expand.grid()函数?提前致谢。 (编辑)以下是此R函数的说明和示例。 (EDIT2)下面是rpy包的示例。我想获得相同的输出对象,但不使用R: 编辑02/09/2012: 我真的 迷上 了Python。Lev Levitsky在他的答案中给出的代码对我不起作用: 但是,似乎已安装itertools模块(键入不会返回任何错误消息) 问题答案:

  • 有没有类似于R中expand.grid()函数的Python函数?提前谢谢。 (编辑)下面是此R函数的说明和示例。 下面是rpy包的示例。我想得到相同的输出对象,但不使用R: 编辑02/09/2012:我真的迷路了Python。列夫·列维斯基在回答中给出的代码对我不起作用: 但是,似乎已安装itertools模块(从itertools导入中键入不会返回任何错误消息)

  • 在Python中有没有我可以做的等价操作?

  • 我尝试使用以下R语句,并使用NumPy将其转换为Python: 有与which()等价的Python吗?这里,x是矩阵tmp中的行,k对应于另一个矩阵中的列数。 之前,我尝试了以下Python代码,并收到一个值错误(操作数无法与形状一起广播):

  • 问题内容: 是否有与的函数等效的也就是说,给定多个相同长度的数组,将创建一个成对的数组。 例如,如果我有三个看起来像这样的数组: 输出数组应为: 问题答案: 这是一个时髦的Ecmascript 6版本: 相当于插图。到: (并且指出ES6具有可变参数语法,因此以下函数定义将类似于python,但请参见下文的免责声明…这将不是其自身的逆,因此)将不相等x;尽管正如Matt Kramer指出的那样例如