小编mar*_*n_j的帖子

重新排列一个大的numpy数组中的行将某些行归零.怎么解决?

我正在使用numpy和以下数据(所有矩阵的所有单元都是非负的):

>>> X1.shape
(59022, 16)
>>> X3.shape
(59022, 84122)
>>> ind.shape
(59022,)
>>> np.max( ind )
59021
>>> np.min( ind )
0
>>> len( set ( ind.tolist() ) )
59022
Run Code Online (Sandbox Code Playgroud)

简而言之,ind只是一种重新排列矩阵中行的方法.问题在于,当重新排列较小阵列(X1)中的行时,根据需要,较大阵列(X2)上的相同操作导致低于某一点的所有行为零.这是我做的:

>>> np.nonzero( np.sum( X3, axis=1 ) )[0].shape
(59022,)
Run Code Online (Sandbox Code Playgroud)

现在让我们看看如果行重新排列会发生什么:

>>> np.nonzero( np.sum( X3[ ind, : ], axis=1 ) )[0].shape
(7966,)
Run Code Online (Sandbox Code Playgroud)

但对于较小的矩阵,一切正常:

>>> np.nonzero( np.sum( X1, axis=1 ) )[0].shape
(59022,)
>>> np.nonzero( np.sum( X1[ ind, : ], axis=1 ) )[0].shape
(59022,)
Run Code Online (Sandbox Code Playgroud)

我猜我可以尝试的一件事是使用稀疏矩阵,但我只是想知道我是否可以使这个东西工作.我有256GB的RAM,所以我不认为内存是一个约束.谢谢你的提示!

python numpy

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

在mesos集群上运行cassandra

我正在尝试在一个小的(测试)Mesos集群上部署Cassandra.我有一个主节点(比如10.10.10.1)和三个工作节点:10.10.10.2-4.

在apache mesos的官方网站上有一个为mesos开发的cassandra框架的链接(它在这里:https://github.com/mesosphere/cassandra-mesos).

我正在按照他们在那里提供的教程.在第3步中,他们说我应该编辑conf/mesos.yaml文件,特别是我应该设置mesos.master.url以便它指向主节点(我也有conf文件).

我尝试的第一件事就是用主节点ip替换localhost,所以我有

mesos.master.url: 'zk://10.10.10.1:2181/mesos'
Run Code Online (Sandbox Code Playgroud)

但是当我启动部署脚本时(通过运行bin/cassandra-mesos,正如他们在第5点所说的那样)我得到以下错误:

2015-02-24 09:18:24,262:12041(0x7fad617fa700):ZOO_ERROR@handle_socket_error_msg@1697: Socket [10.10.10.1:2181] zk retcode=-4, errno=111(Connection refused): server refused to accept the client 
Run Code Online (Sandbox Code Playgroud)

它会一直重试并显示相同的错误,直到我终止它.

我尝试删除'zk'或用URL中的'mesos'替换它,更改(或完全删除)端口删除URL中的'mesos'字,但我不断收到相同的错误.

我也试着看看其他框架是如何做到的(特别是spark,我希望接下来部署)但是没有找到任何有用的东西.任何想法如何运行它?谢谢!

cassandra mesos

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

标签 统计

cassandra ×1

mesos ×1

numpy ×1

python ×1