小编Tim*_*and的帖子

在 ruby​​ 中初始化随机数生成器(即设置种子)?

我们如何在 ruby​​ 中设置种子,以便任何依赖于 RNG 的函数都返回相同的结果(例如类似于 python 的random.seed() )

ruby random-seed

7
推荐指数
2
解决办法
2442
查看次数

如何将多个 Seaborn 绘图保存到单个 pdf 文件中

因此,我尝试将在 for 循环中创建的多个绘图保存到单个 pdf 文件中。我在 SO 上进行了搜索,并拼凑了一些似乎可以工作的代码,除了它不保存它创建的 pdf 中的数字,但其中没有任何内容。

这是重现它的代码:

import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd

dftest = pd.DataFrame(np.random.randint(low=0, high=10, size=(5, 5)),
                    columns=['a', 'b', 'c', 'd', 'e']) 

from matplotlib.backends.backend_pdf import PdfPages

with PdfPages('count.pdf') as pdf_pages:
    df1 = dftest.select_dtypes([np.int, np.float, np.object])
    for i, col in enumerate(df1.columns):
        plt.figure(i)
        countplot = sns.countplot(x=col, data=df1)
        pdf_pages.savefig(countplot.fig)
Run Code Online (Sandbox Code Playgroud)

python pdf plot seaborn

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

如何更改seaborn直方图中的y轴限制?

我的原始数据高度不平衡,如下所示:

df
Index Branch
1      10000
2        200
...
1000   1
...
10000  1
Run Code Online (Sandbox Code Playgroud)

如果我运行:

import seaborn as sns
sns.distplot(df['Branch'], bins=1000)
Run Code Online (Sandbox Code Playgroud)

结果如下:

在此输入图像描述

是否有机会将可视化中 y 值的最大值固定为 0.06?并将 x 值调整为 1000 或其他值。

python axis range histogram seaborn

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

跨多个迁移重用代码:帮助程序模块和帮助程序方法

我需要在多次迁移中重用相同的方法。我的目标是避免代码重复。我尝试如下所示,将共享方法放入文件中lib/migration_helper.rbinclude MigrationHelper在使用共享方法的迁移中使用。

是否有更标准的方式在不同的迁移中共享代码?

特别是,我将帮助程序文件放入lib目录中 - 这是正确的位置吗?

## lib/migration_helper.rb

# Methods shared across migrations.

module MigrationHelper
  def my_shared_method
    # some shared code
  end
end
Run Code Online (Sandbox Code Playgroud)
## db/migrate/do_something.rb

class DoSomething < ActiveRecord::Migration[5.2]
  include MigrationHelper
  # rubocop:disable Metrics/MethodLength
  def up
    # some code
    my_shared_method
  end
  # rubocop:enable Metrics/MethodLength

  def down
    # more code
    my_shared_method
  end

Run Code Online (Sandbox Code Playgroud)

也可以看看:

我从这些问题中得到了一些想法,但它们并没有完全回答我的问题:
Rails 3.2 迁移的自定义帮助程序方法
Rails 在迁移之间共享代码(也称为关注点)
访问 Rails 3 迁移中的自定义帮助程序方法

这个存储库包含了我想要的更复杂版本的示例,以及整个帮助器层次结构。我需要一个更简单的解决方案:
https://gitlab.com/gitlab-org/gitlab-foss/blob/master/lib/gitlab/database/migration_helpers.rb
https://gitlab.com/gitlab-org/gitlab-foss //blob/master/db/migrate/20220808133824_add_timestamps_to_project_statistics.rb

ruby migration activerecord ruby-on-rails helper

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

刷新数据库事务中的物化视图

是否可以在数据库事务中刷新物化视图?

我正在 Laravel 中为复杂查询编写测试用例,它使用事务在测试运行后回滚。

当我添加数据并刷新视图时 - 当我执行 select 语句时不会出现任何记录

postgresql transactions materialized-views rollback

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

如何将所有染色体组合在一个文件中

我下载了1000个基因组数据(染色体1 -22),它是VCF格式的。如何将所有染色体合并到一个文件中?我应该首先将所有染色体转换为 plink 二进制文件,然后再执行吗--bmerge mmerge-list?或者还有其他方法可以将它们结合起来吗?请问有什么建议吗?

bioinformatics genetics vcf-variant-call-format

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

为什么即使对象创建失败,Postgres 序列项也会上升?

我有一个 Postgres 项目,其中我的模型之一是Client,只需通过其主键进行索引。我在创建客户端时遇到了问题,因为有人创建了一个客户端,同时显式设置了我读过的主键,这不会影响 Postgres 的客户端序列表,该序列表负责在任何时候自动递增主键 1创建了一个 Client 对象。

我运行了一些 SQL 查询来研究它,发现当前序列值实际上比数据库中客户端的最高 ID 263 低 1,即 262,因此表明 ID 为 263 的客户端已经存在。我尝试在前端应用程序中创建一个客户端,再次收到错误,并决定重新运行查询。我看到数据库中没有像预期的那样创建新客户端,但我也注意到序列值确实达到了 263,因此当我尝试再次创建客户端时,它起作用了!

即使相关模型的创建失败,PostgreSQL 序列表也会递增,这是正常行为吗?如果是这样,这似乎可能会导致一些严重的问题。

postgresql database-sequence

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

连接两个 Pandas DataFrame 同时保持索引顺序

我试图连接两个 DataFrame,生成的 DataFrame 按原始两个 DataFrame 的顺序保留索引。例如:

df = pd.DataFrame({'Houses':[10,20,30,40,50], 'Cities':[3,4,7,6,1]}, index = [1,2,4,6,8])


df2 = pd.DataFrame({'Houses':[15,25,35,45,55], 'Cities':[1,8,11,14,4]}, index = [0,3,5,7,9])
Run Code Online (Sandbox Code Playgroud)

使用pd.concat([df, df2])只是将 df2 附加到 df1 的末尾。我试图将它们连接起来以产生正确的索引顺序(0 到 9)。

python sorting indexing concatenation pandas

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

为什么带有 /mg 修饰符的 Perl 正则表达式会匹配行尾之后的内容?

这与 perl 多行正则表达式有关,用于分隔段落内的注释,但仅关注正则表达式语法的单个问题。

根据perlre: Modifiers/m正则表达式修饰符意味着

将匹配的字符串视为多行。也就是说,将“^”和“$”从匹配字符串第一行的开头和最后一行的结尾更改为匹配字符串中每一行的开头和结尾。

因此,使用以下代码:

#!/usr/bin/perl
use strict; use warnings;
$/ = ''; # one paragraph at a time
while(<DATA>)
{
    print "original:\n";
    print; 
    s/^([^B]*)(B.*?)$/>$1|$2</mg;
    print "\n\nafter substitution:\n";
    print; 
}

__DATA__
aaaaBaBaBB
bbbbBbadbe
cccc
dddd
eeeeBeeeee
ffff
gggg

Run Code Online (Sandbox Code Playgroud)

我期望正则表达式引擎的行为如下。

第 1 行:匹配,因为它会找到该行开头和结尾之间的两种模式。

第 2 行:同上。

第 3 行:匹配。第一个正则表达式组(在第一组括号中)匹配。但是当我们到达该行的末尾时,我们仍在寻找B,以开始第二个正则表达式组。由于我们已经指定了/m,因此该特定行的末尾意味着我们已到达$但未满足整个模式。

第 4 行:我们开始一个新行,因此我们遇到一个新的^. 再次,没有匹配。

第 5 行:匹配。两个正则表达式组都位于行的开头和结尾之间,即在^和 之间$,完全按照指定。

因此我希望看到

>aaaa|BaBaBB< …
Run Code Online (Sandbox Code Playgroud)

regex perl multiline regex-group

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

防止 ActiveRecord 迁移对 db/struct.sql 进行巨大更改

在测试(而非生产)数据库上运行下面的 ActiveRecord 迁移时,db/structure.sql会出现较大的变化。这是可重现的。变化是:

  • 基于迁移代码的少量预期更改(根据需要)。
  • 大量意外的更改,这些更改与迁移代码无关(不是所希望的)。所有这些意外的更改都重新排列了迁移中 SQL 代码中未提及的表视图和物化视图的顺序。这些重新排列的表、视图和物化视图与迁移中的SQL代码中的项目关联(例如,通过依赖关系)。

是什么导致了这些巨大的不相关差异,最重要的是,如何防止这些巨大的不相关差异

它们是否与生产数据库服务器上的 postgresql 版本和在测试数据库上执行迁移的计算机上的 postgresql 版本不匹配有关?

这些不相关的更改使git diff输出的用处大大降低。GitHub 上的结果也是如此diff

在下面这个最小的示例中,仅重新排列了一些表。但在现实生活中(较大的)迁移中,它改变了数十个表、视图和 matview 的顺序 - 这是一个巨大的变化

class FixFooBarBaz < ActiveRecord::Migration[5.2]

  def up
    sql = <<~SQL
                  DROP VIEW master_foo;
                  DROP VIEW IF EXISTS bar1;
                  CREATE OR REPLACE VIEW bar1 AS
                  SELECT * FROM baz1
                  UNION ALL
                  SELECT * FROM baz2;
                  CREATE OR REPLACE VIEW master_foo AS
                  SELECT …
Run Code Online (Sandbox Code Playgroud)

ruby sql postgresql activerecord ruby-on-rails

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