簡體   English   中英

在標簽-值對2d-numpy數組中對標簽和求和值取整

[英]Round labels and sum values in label-value pair 2d-numpy array

我有一個2d-Numpy數組,基本上包含一個標簽-值對。 我已經合並了其中的幾種矩陣,但希望將標簽四舍五入到小數點后四位並求和,例如:

[[70.00103, 1],
[70.02474, 1],
[70.02474, 1],
[70.024751, 1],
[71.009100, 1],
[79.0152, 1],
[79.0152633, 1],
[79.0152634, 1]]

變成

[[70.001, 1],
[70.0247, 2],
[70.0248, 1],
[71.0091, 1],
[79.0152, 1],
[79.0153, 2]]

關於使用numpy或pandas如何快速完成此操作的任何想法? 謝謝!

在[10]中:

import numpy as np
x=np.array([[70.00103, 1],[70.02474, 1],[70.02474, 1],[70.024751, 1],[71.009100, 1],[79.0152, 1],[79.0152633, 1],[79.0152634,1]])
x[:,0]=x[:,0].round(4)
x

出[10]:

 array([[ 70.001 ,   1.    ],
           [ 70.0247,   1.    ],
           [ 70.0247,   1.    ],
           [ 70.0248,   1.    ],
           [ 71.0091,   1.    ],
           [ 79.0152,   1.    ],
           [ 79.0153,   1.    ],
           [ 79.0153,   1.    ]])

在[14]中:

import pandas as pd
pd.DataFrame(x).groupby(0).sum()

出[14]:

70.0010 1
70.0247 2
70.0248 1
71.0091 1
79.0152 1
79.0153 2

這就是np.around的用途:

>>> A=np.array([[70.00103, 1],
... [70.02474, 1],
... [70.02474, 1],
... [70.024751, 1],
... [71.009100, 1],
... [79.0152, 1],
... [79.0152633, 1],
... [79.0152634, 1]])
>>> 
>>> np.around(A, decimals=4)
array([[ 70.001 ,   1.    ],
       [ 70.0247,   1.    ],
       [ 70.0247,   1.    ],
       [ 70.0248,   1.    ],
       [ 71.0091,   1.    ],
       [ 79.0152,   1.    ],
       [ 79.0153,   1.    ],
       [ 79.0153,   1.    ]])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM