小编Mak*_*e42的帖子

Scala`match`是否构造了语法糖?如果是这样,那怎么办?

trait Expr
case class Number(n: Int) extends Expr
case class Sum(e1: Expr, e2: Expr) extends Expr

object CaseExample {
  def eval(e: Expr): Int = e match {
    case Number(n) => n
    case Sum(e1, e2) => eval(e1) + eval(e2)
  }
  def main(args: Array[String]) {
    println(eval(Sum(Number(1), Number(2))))       //> 3
  }
}
Run Code Online (Sandbox Code Playgroud)

还有相当多的语法糖.我得到的case是隐式创建两个对象

object Number extends Expr {
  def apply(n: Int) = new Number(n)
}
object Sum extends Expr {
  def apply(e1: Expr, e2: Expr) = new Sum(e1, e2)
} …
Run Code Online (Sandbox Code Playgroud)

scala language-construct syntactic-sugar language-concepts

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

如何在带有参数的一行中运行sbt程序?

如何用一个sbt命令运行我的项目?我试过了

sbt run src/main/resources/mydata.txt
Run Code Online (Sandbox Code Playgroud)

添加后

mainClass in (Compile, run) := Some("com.mywebsite.MyExample")
mainClass in (Compile, packageBin) := Some("com.mywebsite.MyExample")
Run Code Online (Sandbox Code Playgroud)

到build.sbt,但是我得到了

[error] (run-main-0) java.lang.ArrayIndexOutOfBoundsException: 0
java.lang.ArrayIndexOutOfBoundsException: 0
        at com.mywebsite.MyExample$.main(MyExample.scala:17)
        at com.mywebsite.MyExample.main(MyExample.scala)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
Run Code Online (Sandbox Code Playgroud)

显然,该参数没有找到我args(0)在main方法中调用的方式。那我做错了什么,我该怎么做对呢?

scala sbt

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

ImportError: libjpeg.so.9: 无法打开共享对象文件: 没有这样的文件或目录

我尝试导入 matplotlib,然后导入 skimage.io,但遇到了一些问题。我需要做什么?

import matplotlib

ImportError: 
    Could not load requested Qt binding. Please ensure that
    PyQt4 >= 4.7 or PySide >= 1.0.3 is available,
    and only one is imported per session.
    Currently-imported Qt library:   None
    PyQt4 installed:                 False
    PyQt5 installed:                 True
    PySide >= 1.0.3 installed:       True
    Tried to load:                   ['pyqtdefault']

matplotlib.use('QT5Agg')
import matplotlib.pyplot as plt
from ggplot import *

import numpy as np
from scipy import stats
from pandas import DataFrame
import pandas as pd
import cv2
import os
from …
Run Code Online (Sandbox Code Playgroud)

python matplotlib importerror

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

怎么分组ndarray?

我有DataFrame(只是一个例子)

D = pd.DataFrame({i: {"name": str(i),
                      "vector": np.arange(i + i % 4, i + i % 4 + 10),
                      "sq": i ** 2,
                      "gp": i % 2} for i in range(10)}).T

  gp name  sq                                    vector
0  0    0   0            [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
1  1    1   1          [2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
2  0    2   4        [4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
3  1    3 …
Run Code Online (Sandbox Code Playgroud)

python numpy pandas

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

如何做R dplyr在熊猫中做的事情?

我想将我的pandas DataFrame分成组,然后在每个块上运行一个复杂的函数.复杂函数为每个块返回一个DataFrame,其中包含任意数量的列和列的名称以及任意数量的行.我希望在操作之后将这些结果DataFrame组合起来.在RI我能够做到这一点

library(tibble)
library(dplyr)

df = tribble(
  ~g,  ~c1, ~c2,
  "a",   1,   6,
  "a",   2,   7,
  "b",   3,   8,
  "b",   4,   9,
  "b",   5,  10
)

myfct <- function(x, y){
  data.frame(c1 = x,
             c2 = y,
             res = c(x * y, x + y, x / y),
             type = c('mult', 'add', 'div'))
}

df %>% group_by(g) %>% do(myfct(.$c1, .$c2))
Run Code Online (Sandbox Code Playgroud)

结果是

Source: local data frame [15 x 5]
Groups: g [2]

       g    c1    c2        res   type
   <chr> <dbl> <dbl>      <dbl> <fctr> …
Run Code Online (Sandbox Code Playgroud)

python r pandas dplyr

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

将元组数组构建为元素

我有

x = np.arange(0, 4, 1)
y = np.arange(0, 4, 1)
Run Code Online (Sandbox Code Playgroud)

而且我要

array([[(0,0), (0,1), (0,2), (0,3)],
       [(1,0), (1,1), (1,2), (1,3)],
       [(2,0), (2,1), (2,2), (2,3)],
       [(3,0), (3,1), (3,2), (3,3)]
      ])
Run Code Online (Sandbox Code Playgroud)

请注意,我想在最低级别上有元组!这不是3年级的数组!这是一个以元组为元素的 2 级数组!

数字 0 到 3 只是一个例子。在实际情况下,它将是浮动的。之后,我想使用这些浮点元组作为工厂函数的参数,该函数生成用对象替换这些元组的对象。

现在的问题是:如何获得这个元组数组?

在 Numpy 中查看,如何压缩两个二维数组?但这不起作用,正如我的评论所揭示的那样。

python numpy

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

获取不在索引列表中的列表元素

我有一个索引列表:

idx = [1,4,5]
Run Code Online (Sandbox Code Playgroud)

和感兴趣的列表:

mylist = ['a','b','c','d','e','f']
Run Code Online (Sandbox Code Playgroud)

我想从mylist索引不在idx.

所以结果应该是:

['a','c','d']
Run Code Online (Sandbox Code Playgroud)

我也可以拆分mylist['a','c','d']and ['b','e','f'],因为无论如何我都会使用它们。

一个 numpy 版本是可以的,尽管我现在实际上只有两个列表。

python numpy list

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

如何将Scala的List [Double]转换为java.util.List [java.lang.Double]?

我只看到了结果是Scala双精度Java列表的示例.我得到了

def getDistance(): java.util.List[java.lang.Double] = {
  val javadistance = distance.toList.asJava
  javadistance
}
Run Code Online (Sandbox Code Playgroud)

但这仍然是一个包含Scala双打的Java列表(distance是同一类的成员getDistance).

java collections scala

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

将视频加载到帧中时出现内存问题

我有一个包含 160 个 FLV 视频的文件夹,每个视频有 120 个大小为 152、360 的 RGB 颜色(3 个通道)帧,我想将它们加载到 numpy 数组中frames。我使用以下代码执行此操作:

import numpy as np
import cv2
import os

directory = "data/"
# frames = []
frames = np.empty(shape=(160 * 120, 152, 360,3), dtype=np.float32)

for file in os.listdir(directory):
    if file.endswith(".flv"):

        # Create a VideoCapture object and read from input file
        cap = cv2.VideoCapture(os.path.join(directory, file))

        # Read until video is completed
        while (cap.isOpened()):
            # Capture frame-by-frame
            ret, frame = cap.read()
            if ret == True:
                # frames.append(frame.astype('float32') …
Run Code Online (Sandbox Code Playgroud)

python memory opencv

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

纯 python 上的 Numba VS numpy-python 上的 Numpa

与使用纯 python 相比,使用 numba 会产生更快的程序:

现在看来,纯 python 上的 numba 甚至(大部分时间)都比 numpy-python 快,例如https://jakevdp.github.io/blog/2015/02/24/optimizing-python-with- numpy 和 numba/

根据https://murillogroupmsu.com/julia-set-speed-comparison/,在纯 python 代码上使用的 numba 比在使用 numpy 的 python 代码上使用的速度快。这通常是真的吗?为什么?

/sf/answers/1816668031/中解释了为什么纯 python 上的 numba 比 numpy-python 更快:numba 看到更多的代码并且有更多的方法来优化代码,而 numpy 只看到一小部分。

这是否回答了我的问题?在使用 numpy 时,我是否会妨碍 numba 完全优化我的代码,因为 numba 被迫使用 numpy 例程而不是找到更优化的方法?我曾希望 numba 会意识到这一点,如果它没有好处,就不要使用 numpy 例程。然后它会使用 numpy 例程,只是它是一个改进(毕竟 numpy 已经过很好的测试)。毕竟“对 NumPy 数组的支持是 Numba 开发的重点,目前正在进行广泛的重构和改进。”

python performance numpy numba

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

将ascii转换为unicode

我无法转换

'Schutzt\xc3\xbcren'.encode("utf-8")
Run Code Online (Sandbox Code Playgroud)

下面的代码,但无法获取错误

UnicodeDecodeError:'ascii'编解码器无法解码位置7的字节0xc3:序数不在范围内(128)

我想得到

'Schutztüren'
Run Code Online (Sandbox Code Playgroud)

结果是。

python utf-8

0
推荐指数
1
解决办法
5426
查看次数