我尝试了几种方法,无法将两列都归还。过滤有效,但只返回一列。
import numpy as np
<<<<read in some data, now get counts>>>>
unique, counts = np.unique(data[0::,2], return_counts=True)
x = np.asmatrix((unique, counts))
x = x.astype(np.int).T
print x
现在我得到以下
[[100001 1]
[100002 1]
[100003 4]]
我想过滤第二列&gt; 3
y = x[x[:,1] > 3,].T
print y
我现在只有第一栏
[[100003]]
为什么我没有?
[[100003 4]]
答案 0 :(得分:2)
您可以考虑使用asarray
代替asmatrix
:
x = np.asarray((unique, counts))
然后它应该像你一样工作。
当我在python 3.4 / numpy 1.10.1上运行你的代码时,如果我使用asmatrix
,我得到:
>>> x = np.asmatrix((unique, counts))
>>> x = x.astype(np.int).T
>>> y = x[x[:,1] > 10,].T
/usr/local/lib/python3.4/dist-packages/numpy/matrixlib/defmatrix.py:318:
VisibleDeprecationWarning: boolean index did not match indexed array along dimension 1;
dimension is 2 but corresponding boolean dimension is 1
out = N.ndarray.__getitem__(self, index)