Если производительность важна, переходите к уровню numpy:
import numpy as np
df = pd.DataFrame( {'a':np.random.randint(0,60,600), 'b':[1,2,5,5,4,6]*100})
def f(df):
keys,values=df.sort_values('a').values.T
ukeys,index=np.unique(keys,True)
arrays=np.split(values,index[1:])
df2=pd.DataFrame({'a':ukeys,'b':[list(a) for a in arrays]})
return df2
Тесты:
In [301]: %timeit f(df)
1000 loops, best of 3: 1.64 ms per loop
In [302]: %timeit df.groupby('a')['b'].apply(list)
100 loops, best of 3: 5.26 ms per loop
Как только relu определено как:
max(features, 0)
, они в основном одинаковы. Оба принимают тензор в качестве входных данных и возвращают тензор. Разница лишь в поддерживаемых типах.
tf.nn.relu
поддерживает следующие типы:
float32
, float64
, int32
, uint8
, int16
, int8
, int64
, [ 119], uint16
, half
, uint32
, uint64
, qint8
, а tf.maximum
поддерживает подмножество вышеуказанных типов:
half
, float32
, float64
, int32
, int64