首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在python中应用等价物?

在python中应用等价物?
EN

Stack Overflow用户
提问于 2016-04-03 03:04:12
回答 4查看 9.8K关注 0票数 5

我需要一次增加一行python DataFrame。

在R中,sapply()函数是快速有效的。例如,

代码语言:javascript
复制
sapply(1:100, function(i) rnorm(50) ) 

生成一个50 x 100的(标准正态随机)数矩阵,然后可以根据需要将其转置和/或转换为数据帧

如何在python中高效地做同样的事情呢?

EN

回答 4

Stack Overflow用户

发布于 2019-02-25 23:30:12

R中的sapply等同于python中的map

R中的sapply(c(-1, 1), abs)等同于Python中的map(abs, (-1, 1))。但是map会返回一个地图对象,所以如果你想要一个列表,你需要把它传递给list()。在Python语言中,您还可以使用列表理解[abs(i) for i in (-1, 1)]

您的示例不是sapply的好用例。这个矩阵可以在不使用的情况下实现:matrix(rnorm(5000), 50, 100)。同样,在Python语言中,使用import numpy as np可以使用np.random.normal(size=(50, 100))来实现。

票数 6
EN

Stack Overflow用户

发布于 2016-04-03 03:51:53

考虑下面的列表理解版本:

代码语言:javascript
复制
import numpy as np
import pandas as pd

df = pd.DataFrame([np.random.randn(50) for i in range(100)])
票数 2
EN

Stack Overflow用户

发布于 2018-07-03 04:57:45

虽然列表理解是sapply()的更通用的替代方案,但对于所述问题,最有效的方法是省略列表理解:

代码语言:javascript
复制
import numpy as np
import pandas as pd

# randn takes dimensions for args: randn(d1, d2, ..., dn)
df = pd.DataFrame(np.random.randn(50,100))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36377553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档