小编Die*_*llo的帖子

Dask 存储/读取不适合内存的稀疏矩阵

我正在使用sparse来构造、存储和读取大型稀疏矩阵。我想使用Dask数组来使用其阻塞算法功能。

这是我正在尝试做的简化版本:

file_path = './{}'.format('myfile.npz')
if os.path.isfile(file_path):
  # Load file with sparse matrix
  X_sparse = sparse.load_npz(file_path)
else:
  # All matrix elements are initially equal to 0
  coords, data = [], []
  X_sparse = sparse.COO(coords, data, shape=(88506, 1440000))
  # Create file for later retrieval
  sparse.save_npz(file_path, X_sparse)

# Create Dask array from matrix to allow usage of blocked algorithms
X = da.from_array(X_sparse, chunks='auto').map_blocks(sparse.COO)
return X
Run Code Online (Sandbox Code Playgroud)

不幸的是,上面的代码抛出试图使用时,下面的错误compute()XCannot convert a sparse array to dense automatically. …

python numpy sparse-matrix dask

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

Active Record:从 PostgreSQL 数组中删除元素

假设有一个名为的活动记录模型Job,它有一个数组 column follower_ids。我已经创建了一个范围,允许获取用户关注的所有作业:

# Returns all jobs followed by the specified user id
def self.followed_by(user_id)
  where(
    Arel::Nodes::InfixOperation.new(
      '@>',
      Job.arel_table[:follower_ids],
      Arel.sql("ARRAY[#{user_id}]::bigint[]")
    )
  )
end
Run Code Online (Sandbox Code Playgroud)
# Retrieve all jobs followed by user with id=1
Job.followed_by(1)
Run Code Online (Sandbox Code Playgroud)

有没有办法follower_ids使用数据库从列中删除特定元素(即,不循环遍历活动记录对象并手动为每个对象调用delete/ )?save

例如,最好只用一个查询就可以从所有这些作业中Job.followed_by(1).remove_follower(1)删除用户。id=1follower_ids

postgresql activerecord ruby-on-rails

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