在R中,您可以通过指定起点,终点和所需的输出长度来创建序列
seq(1, 1.5, length.out=10)
# [1] 1.000000 1.055556 1.111111 1.166667 1.222222 1.277778 1.333333 1.388889 1.444444 1.500000
Run Code Online (Sandbox Code Playgroud)
在Python中,可以numpy arange类似的方式使用该函数,但是没有简单的方法来指定输出长度。我能想到的最好的:
np.append(np.arange(1, 1.5, step = (1.5-1)/9), 1.5)
# array([ 1. , 1.05555556, 1.11111111, 1.16666667, 1.22222222, 1.27777778, 1.33333333, 1.38888889, 1.44444444, 1.5 ])
Run Code Online (Sandbox Code Playgroud)
有没有更干净的方法来执行此操作?
我们有一个自动化流程,可以在每个合并请求结束时提交状态文件。我们希望配置一个在每次提交时运行的管道,除了该用户的提交之外。目前管道的配置如下:
test:
stage: test
script:
- make test
except:
changes:
- "the_status_file"
Run Code Online (Sandbox Code Playgroud)
但是,有时状态文件根本不会改变。在这种情况下,管道将运行。
相反,我们希望将管道配置为忽略某个用户的提交(该用户是我们创建的自动化用户)。这在gitlab ci 中可能吗?
我知道近似字符串搜索和 Levenshtein 距离之类的东西,但我想要做的是获取大量字符串并快速挑选出任何彼此相似的匹配对(例如,相距 1 Damerau-Levenshtein 距离)。所以像这样
l = ["moose", "tiger", "lion", "mouse", "rat", "fish", "cat"]
matching_strings(l)
# Output
# [["moose","mouse"],["rat", "cat"]]
Run Code Online (Sandbox Code Playgroud)
我只真正知道如何使用 R 和 Python,所以如果您的解决方案可以用其中一种语言轻松实现,则加分。
更新:
感谢 Collapsar 的帮助,这里是 Python 中的解决方案
import numpy
import functools
alphabet = {'a': 0, 'c': 2, 'b': 1, 'e': 4, 'd': 3, 'g': 6, 'f': 5, 'i': 8, 'h': 7, 'k': 10, 'j': 9, 'm': 12, 'l': 11, 'o': 14, 'n': 13, 'q': 16, 'p': 15, 's': 18, 'r': 17, 'u': 20, 't': 19, 'w': …Run Code Online (Sandbox Code Playgroud) 如果我在matplotlib中创建一个散点图,那么如何获得(或设置)之后点的坐标?我可以访问集合的一些属性,但我无法找到如何获取点本身的坐标.
我可以得到;
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
x = [0,1,2,3]
y = [3,2,1,0]
ax.scatter(x,y)
ax.collections[0].properties()
Run Code Online (Sandbox Code Playgroud)
其中列出了集合的所有属性,但我不认为它们中的任何一个是坐标
在Python 2.7中,我可以像这样创建一个字符数组:
#Python 2.7 - works as expected
from array import array
x = array('c', 'test')
Run Code Online (Sandbox Code Playgroud)
但是在Python 3 'c'中不再是一个可用的类型代码.如果我想要一个字符数组,我该怎么办?该'u'类型也被删除.
#Python 3 - raises an error
from array import array
x = array('c', 'test')
Run Code Online (Sandbox Code Playgroud)
TypeError:不能使用str来初始化类型为'c'的数组
这个问题应该有一个简单,优雅的解决方案,但我无法弄明白,所以这里有:
假设我有以下数据集,并且我想使用dplyr计算每行中存在的2的数量.
set.seed(1)
ID <- LETTERS[1:5]
X1 <- sample(1:5, 5,T)
X2 <- sample(1:5, 5,T)
X3 <- sample(1:5, 5,T)
df <- data.frame(ID,X1,X2,X3)
library(dplyr)
Run Code Online (Sandbox Code Playgroud)
现在,以下工作:
df %>%
rowwise %>%
mutate(numtwos = sum(c(X1,X2,X3) == 2))
Run Code Online (Sandbox Code Playgroud)
但是,如何避免键入所有列名称?
我知道这可能是不容易做到dplyr的,但更普遍的,我想知道我怎么可以使用dplyr的mutate多列没有打字了所有列名.
我正在尝试 pyglet 渲染图像并将其保存到 .PNG 文件。我想在不弹出动画窗口的情况下执行此操作。有没有办法在无头模式下运行 pyglet,这样窗口就不会弹出,但我的图像仍然被渲染和保存?
phpunit 的选项--filter进行模糊匹配。假设我有一个名为 的测试testHandle,另一个名为 的测试testHandleFooBar。如何仅testHandle使用该--filter选项运行?
我已经在 virtualenv 中使用 pip 为 python3 安装了 scipy。当我尝试导入 scipy 时,出现以下错误:
>>> import scipy
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\chriz\PycharmProjects\untitled1\venv\lib\site-packages\scipy\__init__.py", line 104, in <module>
from . import _distributor_init
File "C:\Users\chriz\PycharmProjects\untitled1\venv\lib\site-packages\scipy\_distributor_init.py", line 61, in <module>
WinDLL(os.path.abspath(filename))
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.2032.0_x64__qbz5n2kfra8p0\lib\ctypes\__init__.py", line 364, in __init__
self._handle = _dlopen(self._name, mode)
OSError: [WinError 126] The specified module could not be found
Run Code Online (Sandbox Code Playgroud)
我似乎缺少某种依赖,但我不知道依赖是什么
当我寻找它试图打开的 .dll 时,它似乎在那里
假设我有一个这样的数据框:
dat<-data.frame(c("a", "b", "c"), c("b", "a", "d"), stringsAsFactors=F)
colnames(dat)<-c("V1", "V2")
dat
# V1 V2
# 1 a b
# 2 b a
# 3 c d
Run Code Online (Sandbox Code Playgroud)
我想要做的是,每一行都是一对,生成所有唯一的对,忽略顺序。所以我的输出会像
unique_pairs(dat$V1, dat$V2)
# Output
# V1 V2
# 1 a b
# 2 c d
Run Code Online (Sandbox Code Playgroud)
这样做的最有效方法是什么?