我有一個m * n的float類型的numpy矩陣。我將使用Counter函數(來自集合)來推導矩陣元素的某些組合的計數。在試驗中,我發現Counter()需要字符串值條目來迭代,而我的numpy矩陣默認是float類型。在python中將一個numpy矩陣轉換爲字符串
使用dtype同時聲明零的numpy矩陣並不能提供幫助。
所以,我想將numpymatrix的每個元素轉換成一個字符串。但是,它不工作。我該怎麼做?
我有一個m * n的float類型的numpy矩陣。我將使用Counter函數(來自集合)來推導矩陣元素的某些組合的計數。在試驗中,我發現Counter()需要字符串值條目來迭代,而我的numpy矩陣默認是float類型。在python中將一個numpy矩陣轉換爲字符串
使用dtype同時聲明零的numpy矩陣並不能提供幫助。
所以,我想將numpymatrix的每個元素轉換成一個字符串。但是,它不工作。我該怎麼做?
xx = np.matrix([[1.2,3.4],[5.4,6.7],[9.8, 5.2]])
zz = np.matrix([[str(ele) for ele in a] for a in np.array(xx)])
結果:
>>> xx
matrix([[ 1.2, 3.4],
[ 5.4, 6.7],
[ 9.8, 5.2]])
>>> zz
matrix([['1.2', '3.4'],
['5.4', '6.7'],
['9.8', '5.2']],
dtype='|S3')
目前還不清楚你正在嘗試做什麼,但你可能更適合使用np.histogram(或可能是np.bincount)基於numpy數組來派生計數。
但是如果你必須:
In [45]: a = np.random.normal(size=(3,3))
In [46]: a
Out[46]:
array([[ 0.64552723, -0.4329958 , -1.84342512],
[ 0.83197804, -0.03053034, 0.22560254],
[ 0.61356459, -1.60778048, -1.51859134]])
In [47]: a.astype('|S8')
Out[47]:
array([['0.645527', '-0.43299', '-1.84342'],
['0.831978', '-0.03053', '0.225602'],
['0.613564', '-1.60778', '-1.51859']],
dtype='|S8')