小编Att*_*nen的帖子

熊猫取代/字典慢

请帮助我理解为什么Python/Pandas中的"替换字典"操作很慢:

# Series has 200 rows and 1 column
# Dictionary has 11269 key-value pairs
series.replace(dictionary, inplace=True)
Run Code Online (Sandbox Code Playgroud)

字典查找应为O(1).替换列中的值应为O(1).这不是矢量化操作吗?即使它没有矢量化,迭代200行只有200次迭代,那么它怎么会变慢呢?

以下是SSCCE演示此问题:

import pandas as pd
import random

# Initialize dummy data
dictionary = {}
orig = []
for x in range(11270):
    dictionary[x] = 'Some string ' + str(x)
for x in range(200):
    orig.append(random.randint(1, 11269))
series = pd.Series(orig)

# The actual operation we care about
print('Starting...')
series.replace(dictionary, inplace=True)
print('Done.')
Run Code Online (Sandbox Code Playgroud)

在我的机器上运行该命令需要1秒以上的时间,这比执行<1000次操作的时间长1000倍.

python performance dictionary pandas

6
推荐指数
1
解决办法
2183
查看次数

Keras/Tensorflow Conv1D 预期输入形状

我想对 29 个特征输入数据(如 29x1 形状)应用一维卷积。我告诉 Keras,input_shape=(29,1)但我收到一个错误,它期望输入“具有 3 个维度,但得到形状为 (4000, 29) 的数组”。为什么 Keras 期望 3 维?

Keras 文档给出了如何使用 input_shape 的奇怪示例:

(无,128)用于每步具有 128 个特征的可变长度序列。

我不确定可变长度序列是什么意思,但由于我有 29 个功能,我也尝试过(None,29)(1,29)得到了类似的错误。

我是否误解了一维卷积的作用?

下面是我期望 Conv1D 在内核大小为 3 的情况下(给定 7x1 输入)执行的操作的直观描述。

[x][x][x][ ][ ][ ][ ]
[ ][x][x][x][ ][ ][ ]
[ ][ ][x][x][x][ ][ ]
[ ][ ][ ][x][x][x][ ]
[ ][ ][ ][ ][x][x][x]
Run Code Online (Sandbox Code Playgroud)

convolution neural-network conv-neural-network keras tensorflow

6
推荐指数
1
解决办法
3079
查看次数

Clojure:O(1) 函数检查序列是否恰好有 1 个元素

Clojure 中是否有一种快速方法来检查序列是否恰好有 1 个元素?请注意,序列可能包含 nils。

如果我正确读取源代码,调用count序列需要 O(n) 时间。

替代解决方案:

(and
  (not (empty? a-seq))
  (empty? (rest a-seq)))
Run Code Online (Sandbox Code Playgroud)

文档说调用empty?集合与coll调用相同(not (seq coll)),但他们没有指定其效率或调用empty?序列时会发生什么。我尝试在 github 存储库中搜索其empty?实现方式,但它忽略了搜索中的问号,并且出现了大量“空”的点击。我想empty?restO(1),但话又说回来,count不是......

performance functional-programming predicate clojure

5
推荐指数
1
解决办法
1009
查看次数

IntelliJ IDEA 对所有内容(Python、虚拟环境)都表示“未解决的引用”

如何让 IntelliJ IDEA 识别常见的 Python 模块?尽管我已将我的虚拟环境添加为“Python 解释器”并且缓存无效,但 IntelliJ IDEA 对所有内容都抱怨“未解决的引用”。这些(1) (2)相关问题无助于解决问题。

未解决的参考 解释器已设置

python intellij-idea

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

什么可能导致`gatsby develop`在构建“开发包”时卡住?

我制作了一个 Gatsby starter,两个不同的人向我报告说他们无法运行它,因为它在构建“开发包”时卡住了。开发和生产构建都不起作用。我无法在我自己的机器上重现这个问题,但我想为想要使用我的 starter 的人修复它。什么可能导致 Gatsby 卡在这一步,有什么办法可以强制问题在我的机器上重现?

webpack gatsby

5
推荐指数
1
解决办法
1720
查看次数

Python 3中自定义类的迭代器

我试图将自定义类从Python 2移植到Python3。我找不到正确的语法来移植该类的迭代器。这是真实类的MVCE,到目前为止我仍在尝试解决此问题:

工作的Python 2代码:

class Temp:
    def __init__(self):
        self.d = dict()
    def __iter__(self):
        return self.d.iteritems()

temp = Temp()
for thing in temp:
    print(thing)
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,iteritems()在Python 3中中断。根据这个广受好评的答案,“ dict.items现在dict.iteritems在python 2中做了事情”。所以我接下来尝试了:

class Temp:
    def __init__(self):
        self.d = dict()
    def __iter__(self):
        return self.d.items()
Run Code Online (Sandbox Code Playgroud)

上面的代码产生“ TypeError: iter() returned non-iterator of type 'dict_items'

根据答案,Python 3除了iter方法之外,还需要可迭代的对象提供next()方法。好吧,字典也是可迭代的,因此在我的用例中,我应该能够只传递字典的next和iter方法,对吗?

class Temp:
    def __init__(self):
        self.d = dict()
    def __iter__(self):
        return self.d.__iter__
    def next(self):
        return self.d.next
Run Code Online (Sandbox Code Playgroud)

这次给了我“ TypeError: iter() returned non-iterator of type 'method-wrapper'”。 …

python dictionary iterator python-3.x

4
推荐指数
1
解决办法
2256
查看次数

GatsbyJS 中的 GraphQL 过滤器

我无法理解如何在 GatsbyJS 中为 GraphQL 查询编写过滤器。

这有效:

filter: { contentType: { in: ["post", "page"] }
Run Code Online (Sandbox Code Playgroud)

我基本上需要相反的,比如:

filter: { "post" in: { contentTypes } } // where contentTypes is array
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为“需要NAME”(在我的示例中是“post”)。

通过 GatsbyJS文档后,我发现了这一点:

elemMatch: short for element match, this indicates that the field you are filtering will return an array of elements, on which you can apply a filter using the previous operators

filter:{
  packageJson:{
    dependencies:{
      elemMatch:{
        name:{
          eq:"chokidar"
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

伟大的!这就是我需要的!所以我尝试这样做,我得到:

error GraphQL Error Field "elemMatch" …
Run Code Online (Sandbox Code Playgroud)

graphql gatsby

4
推荐指数
1
解决办法
5716
查看次数

GraphQL语法按相对路径访问文件

GatsbyJS 文档给出了使用GraphQL通过relativepath访问文件的示例:

export const query = graphql`
  query {
    fileName: file(relativePath: { eq: "images/myimage.jpg" }) {
      childImageSharp {
        fluid(maxWidth: 400, maxHeight: 250) {
          ...GatsbyImageSharpFluid
        }
      }
    }
  }
`
Run Code Online (Sandbox Code Playgroud)

我就是无法正常工作,也不知道为什么。我尝试了各种不同的语法,但查询始终为文件名返回null。这是我在Graph i QL中的最新尝试:

{
    fileName: file(relativePath: { eq: "./html.js" }) {
      id
    } 
}
Run Code Online (Sandbox Code Playgroud)

我想念什么?如何通过相对路径访问文件?

阅读答案后进行编辑:

在我中gatsby-config.js,有几个路径设置为可查询:

{
  resolve: `gatsby-source-filesystem`,
  options: {
    name: `images`,
    path: `${__dirname}/src/images/`
  }
},
{
  resolve: `gatsby-source-filesystem`,
  options: {
    path: `${__dirname}/content/posts/`,
    name: "posts"
  }
},
....
Run Code Online (Sandbox Code Playgroud)

当我查询pic.jpg(而不是images/pic.jpg)时,盖茨比如何知道我想要images/pic.jpg而不是posts/pic.jpg …

graphql gatsby

4
推荐指数
1
解决办法
996
查看次数

img项目的CSS网格效果很好,但是当img获取div包装器时会中断

这是我第一次修改CSS Grid。我用它制作了一个响应式图像网格,在一个玩具示例中效果非常好。但是,当我尝试在实际项目中使用代码时,所有内容都会以怪异的方式中断。打破它的第一步是向图像添加div包装器。(我使用包装器为图像和其他样式提供占位符)。

适用于img的CSS网格的JSfiddle

<div class="grid">
  <img class="item" src="https://via.placeholder.com/200" />
  <img ...
Run Code Online (Sandbox Code Playgroud)

添加div包装器后,JSfiddle for CSS网格不起作用

<div class="grid">
  <div class="item"><img src="https://via.placeholder.com/200" /></div>
  <div ...
Run Code Online (Sandbox Code Playgroud)

我知道包装器在玩具示例中没有做任何有用的事情。这是我的实际项目的精简版,其中的包装器很有用。我可以修复CSS网格,使其与包装一起使用吗?

html css css3 css-grid

4
推荐指数
1
解决办法
44
查看次数

什么是Hyperledger?

你能为已经知道区块链的人解释Hyperledger吗?他们的网站非常模糊,提供的信息很少,包括"构建区块链框架和平台的软件开发者社区"的定义.Hyperledger的维基百科页面给人的印象是它是一组可以适应区块链项目的模块化工具.然后我又听了几个Hyperledger项目的讨论,他们谈到在Hyperledger上运行他们的东西,就像他们有一个独特的区块链,多个项目运行.但它更像是制作自己的区块链工具包吗?

hyperledger

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