小编Jer*_*nej的帖子

减轻 pandas 的性能警告(DataFrame 高度碎片化)

假设我们有一个函数,它返回给定 dataframebar(df)的长度的 numpy 数组。len(df)df

\n

现在考虑这个习语

\n
def foo(df):\n    for i in range(N):\n        df['FOO_' + str(i)] = bar(df)\n    return df\n
Run Code Online (Sandbox Code Playgroud)\n

最近的 pandas 更新开始导致以下警告

\n
\n

性能警告:DataFrame 高度碎片化。这通常是\n多次调用的结果frame.insert,\n性能较差。考虑使用 pd.concat(axis=1) 一次连接所有列。要获取碎片整理的帧,请使用\nnewframe = frame.copy()

\n
\n

据我了解,缓解这种情况的一种方法是将上面的代码更改为以下习惯用法

\n
def foo2(df):\n    frames = [df]\n    for i in range(N):\n        frames += [pd.Series(bar(df), index=df.index)]\n    return pd.concat(frames, axis=1)\n
Run Code Online (Sandbox Code Playgroud)\n

上面的代码修复了警告,但导致执行时间更差。

\n
In [110]: %timeit foo()\n1.73 s \xc2\xb1 11 ms per loop (mean \xc2\xb1 std. dev. of 7 runs, 1 …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

13
推荐指数
2
解决办法
8747
查看次数

确定天空中的月食

我得到了一个 UTC 日期列表,所有时间都转换为 00:00。

我想确定某一天(即过去 24 小时)是否发生了(月食)日食

考虑python片段

from sykfield.api import load
eph = load('de421.bsp')
def eclipticangle(t):

    moon, earth = eph['moon'], eph['earth']
    e = earth.at(t)
    x, y, _ = e.observe(moon).apparent().ecliptic_latlon()

    return x.degrees
Run Code Online (Sandbox Code Playgroud)

我假设一个人能够确定日食是否在时间t的24 小时内发生

  1. 检查第一个角度是否足够接近 180(简单)
  2. 检查第二度是否足够接近于 0(不是那么 essy?)

现在,就评论中的答案而言,仅通过测试角度是否接近 0 来解决第二个问题并不是那么简单。

因此,我的问题是

有人可以提供一个函数来确定月食是否发生在给定的第 t 天吗?

编辑。编辑此问题以反映 Brandon Rhodes 在下面评论中留下的反馈。

python astronomy skyfield

8
推荐指数
1
解决办法
223
查看次数

Python:从文本数据中删除html

我的问题与以下内容有些相关:从Python中的字符串中删除HTML

我正在寻找一种从文本中删除HTML代码的简单方法.例如:

string = 'foo <SOME_VALID_HTML_TAG> something </SOME_VALID_HTML_TAG> bar'
stripIt(string)
Run Code Online (Sandbox Code Playgroud)

然后会屈服foo bar.

有什么简单的工具可以在Python中实现这一点吗?HTML代码可以嵌套.

html python

5
推荐指数
2
解决办法
7802
查看次数

序列数据上的 LSTM,预测离散列

我是 ML 的新手,只是触及了它的表面,所以如果我的问题没有意义,我深表歉意。

我有一些物体的连续测量序列(捕获它的重量、大小、温度……)和一个确定物体属性的离散列(整数的有限范围,比如 0,1,2)。这是我想预测的专栏。

有问题的数据确实是一个序列,因为属性列的值可能会根据围绕它的上下文而变化,并且序列本身也可能有一些循环属性。简而言之:数据的顺序对我很重要。

一个小例子如下表所示

请注意,有两行包含相同的数据,但在“属性”字段中具有不同的值。这个想法是属性字段的值可能取决于前面的行,因此行的顺序很重要。

我的问题是,我应该使用什么样的方法/工具/技术来解决这个问题?

我知道分类算法,但不知何故我认为它们不适用于这里,因为有问题的数据是连续的,我不想忽略这个属性。

我尝试使用 Keras LSTM 并假装 Property 列也是连续的。然而,我以这种方式获得的预测通常只是一个常数十进制值,在这种情况下没有意义。

解决此类问题的最佳方法是什么?

classification deep-learning lstm keras tensorflow

3
推荐指数
1
解决办法
1838
查看次数