我正在使用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,所以我不认为内存是一个约束.谢谢你的提示!
我正在尝试在一个小的(测试)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,我希望接下来部署)但是没有找到任何有用的东西.任何想法如何运行它?谢谢!