Você está comparando maçãs e laranjas.
ps
listará os processos em execução. Você está recebendo, então, a contagem de IDs de usuário exclusivos que possuem um processo.
uptime
relatará os usuários conectados. Usando o utmp. Mais detalhes em link
Então, comparação de saída, destacando isso, abaixo.
# uptime
16:52:37 up 30 days, 23:32, 1 user, load average: 0.04, 0.04, 0.05
# w
16:57:33 up 30 days, 23:37, 1 user, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
steve pts/0 cpc79909-stkp12- 16:50 5.00s 0.07s 0.28s sshd: steve [priv]
#
# ps -Af | cut -f1 -d' ' | sort | uniq | wc -l
7
# ps -Af | cut -f1 -d' ' | sort | uniq
chrony
dbus
polkitd
postfix
root
steve
UID
#