如何映射btw numpy数组值和矩阵列

你好
我正在寻找有关数组中映射btw值的一些信息,
矩阵的相应列
我有一个numpy array = [11.0,33.0,22.0,55.0,44.0]
和一个numpy矩阵对象=
矩阵([[1.3,2.5,3.2,6.7,3.1],
[9.7,5.6,4.8,2.5,2.2],
[5.1,3.7,9.6,3.1,6.7],
[5.6,3.3,1.5,2.4,8.5])))))
数组的第一个值(IE 11.0)与第一列有关
矩阵等.
我希望创建一个映射btw每个阵列和相应的col
矩阵..然后我想对数组进行排序并检索矩阵
分类数组的某些值的列.任何人都可以建议如何去
关于它..
dn

# 回答1

dexeby@gmail.com写道:
如果这是一个不太有用的邮件列表,我会说诸如"那里"之类的话
也是一个numpy邮件列表,您已经覆盖了对象类."
无论如何,以下内容会起作用,但这不会很快
数百万个要素:
来自Numpy Import Matrix,Asarray
obj = matrix([[[1.3,2.5,3.2,6.7,3.1],
[9.7,5.6,4.8,2.5,2.2],
[5.1,3.7,9.6,3.1,6.7],
[5.6,3.3,1.5,2.4,8.5])))))
ar = asarray(obj)
val_to_col_list = []
对于AR中的行:
对于Ind,枚举(行)中的Val:
val_to_col_list.append((val,ind))
val_to_col_list.sort()
相反,如果您需要一张地图,则每个值映射到
它显示在其中,您可以尝试以下操作:
val_col_map = {}
对于AR中的行:
对于Col,枚举的Val(行):
tmplist = val_col_map.get(val,[])
tmplist.append(col)
val_col_map [val] = tmplist
val_keys = val_col_map.keys()
val_keys.sort()
Val_keys现在是您原始的唯一值的排序列表
矩阵.将这些值用作Val_col_map的键.
eww ...但是它有效.您想在浮动方面非常小心
点数作为键,请参见http://docs.python.org/tut/node16.html
更多细节.
祝你好运,
卡梅伦.
# 回答2


CW,
thanx的答复..但是我正在寻找映射的btw
numpy.ndarray和numpy.matrix的相应列,之后
一些挣扎:-)我想出了这个
#a函数可以从矩阵返回列
def getCol(数据,colindex):
返回数据[:,colindex]#返回矩阵OBJ
#Function用给定矩阵设置矩阵的列
def setcol(数据,inmat,colindex):
data [:,colindex] = inmat #both data和inmat是矩阵objs
#现在我有一个带有5个元素的ndarray
estarAray = array(([[[11.0,33.0,22.0,55.0,44.0])))))
#和一个带有5列的矩阵
eVectmat =矩阵([[[1.3,2.5,3.2,6.7,3.1],
[9.7,5.6,4.8,2.5,2.2],
[5.1,3.7,9.6,3.1,6.7],
[5.6,3.3,1.5,2.4,8.5]
))
Exectmat的第一列对应于评估的第一个元素
等等..
然后我做了
mydict = dict(
[(evalArray [x],getcol(eVectmat,x))在范围内(LEN(evalArray))]
)
klst = mydict.keys()
klst.sort()
klst.reverse()#becaus我想要最大的值作为第一个
newevectmat = matrix(zeros((4,5)))
对于X范围(LEN(KLST))):
newcol = mydict [klst [x]]
setcol(newevectmat,newcol,x)
打印" newevectmat:"
打印newevectmat
这给了我所需的结果..现在我有一个带有列的新矩阵
布置对应 评估值 我不知道这是否是一种好方法(甚至是毕达斯顿). 毕竟是一个初学者.!. 任何最欢迎的建议 tia DN

标签: python

添加新评论