小编Don*_*son的帖子

大熊猫的大小和数量有什么区别?

这是熊猫groupby("x").countgroupby("x").size熊猫之间的区别?

尺寸只是排除零吗?

python numpy pandas difference

69
推荐指数
3
解决办法
2万
查看次数

从redis列表中删除特定索引处的元素

是否可以删除redis列表中特定索引处的元素?没找到我想要的东西.有一个修剪,允许您选择一组特定的元素,LREM允许您按值删除列表中的项目,但我没有值.

我找到了一个hack,你使用LSET将元素的值更改为UID或字符串,例如'DELETED',并且您在此值上调用LREM.这只是感觉有点脏.

ruby redis

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

Numpy 的索引是倒排的

我正在忙于阅读 Wes Mckinney 的《Python for Data Analysis》,并且遇到了以下示例,该示例有点令人困惑。它涉及将多个索引数组传递给 np 数组。

给定以下 np.array

[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]
 [12 13 14 15]
 [16 17 18 19]
 [20 21 22 23]
 [24 25 26 27]
 [28 29 30 31]] 
Run Code Online (Sandbox Code Playgroud)

当我们使用以下值对数组执行花式索引时

arr[[1, 5, 7, 2], [0, 3, 1, 2]]
Run Code Online (Sandbox Code Playgroud)

以下结果

array([ 4, 23, 29, 10]) 
Run Code Online (Sandbox Code Playgroud)

这并不是我所期望的>我知道它应该返回与每个实例元组相对应的一维元素数组。它返回的实际值让我感到困惑。

我认为它应该返回的元组是 (0,1), (5,3), (7, 1), (2, 2)

应该返回 [4, 没有这样的元素, 没有这样的元素, 10]

我到底缺少什么?

python arrays indexing numpy

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

选择散列,无动于衷的访问不起作用

我正在尝试处理哈希中不一致的键(字符串/符号)。我认为 HashWithIndifferentAccess 将是答案,但在尝试对这些散列进行一些基本操作时,我得到了一些稍微令人困惑的结果

例如我有以下 HashWithIndifferentAccess

(rdb:1) metadata
{"indexes"=>["respondent", "brand"], "columns"=>["rating"], 
 "value_labels"=>{}, "column_labels"=>{}}
(rdb:1) metadata.class
ActiveSupport::HashWithIndifferentAccess
Run Code Online (Sandbox Code Playgroud)

当我尝试以下选择时,我得到一个空哈希

(rdb:1) metadata.select{ |k, v| [:indexes, :columns, :value_labels, :column_labels]
.include? k }
 {}
Run Code Online (Sandbox Code Playgroud)

HashWithIndifferentAccess 是否可以使用所有常见的哈希操作?为什么此操作返回空哈希

ruby hash ruby-on-rails

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

使用ActiveRecord :: Base.connection.execute时进行批处理

我正在忙于编写一个迁移,该迁移将使我们能够将yamler从Syck迁移到Psych,并最终将项目升级到ruby2。尽管如此,该迁移将占用大量资源,因此我将需要使用分块。

我编写了以下方法来确认我计划使用的迁移结果能够产生预期的结果,并且可以在不停机的情况下完成。为了避免Active Record自动执行序列化,我需要使用ActiveRecord::Base.connection.execute

我描述转换的方法如下

 def show_summary(table, column_name)
  a = ActiveRecord::Base.connection.execute <<-SQL
   SELECT id, #{column_name} FROM #{table}
  SQL
  all_rows = a.to_a; ""
  problem_rows = all_rows.select do |row|
    original_string = Syck.dump(Syck.load(row[1]))
    orginal_object = Syck.load(original_string)

    new_string = Psych.dump(orginal_object)
    new_object = Syck.load(new_string)

    Syck.dump(new_object) != original_string rescue true
  end

problem_rows.map do |row|
  old_string = Syck.dump(Syck.load(row[1]))
  new_string = Psych.dump(Syck.load(old_string)) rescue "Parse failure"
  roundtrip_string = begin
    Syck.dump(Syck.load(new_string))
  rescue => e
    e.message
  end

  new_row = {}
  new_row[:id] = row[0]
  new_row[:original_encoding] = old_string
  new_row[:new_encoding] = roundtrip_string
  new_row
  end …
Run Code Online (Sandbox Code Playgroud)

activerecord ruby-on-rails batching syck psychparser

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