As I mentioned in a comment, you can see some kind of distribution of users by reputation in the reputation league. (Notice the table on the right. Reputation leagues is also linked from the thingy in your profile which says "top x% this week/month...")
If you want to calculate average reputation, you can use SEDE. This is a useful tool which can be used to get various data about Stack Exchange using SQL.
For example, here is a query calculating average reputation. However, I would imagine that you might prefer to eliminate users who never posted anything on the site. So maybe it would be reasonable to add some restrictions. You may notice that the query has a parameter min, by changing this parameter you will be looking at users above some threshold. For example, the same query for users having at least 101 reputation points.
And if you increase it a bit more, the average increases quite rapidly - here is the result for 102 and for 125. The reason for the big jump between 101 and 102 is that there are many users who never posted anything and all their reputation comes from the association bonus. (Which leaves them at exactly 101 reputation points.)
Similarly, we see - as expected - rather big jump between looking at average of all users and users with reputation at least 2 - since the latter includes the users who did at least some reputation-related action on the site or have the association bonus.
We should also keep in mind that users who are currently suspended have reputation 1. There are some users with many posts which are suspended at the moment - this also influences the average. Without the suspension, those users would contribute with reputation much higher than 1.