The implementation here is basically the default. Using the average or weighted average of the points making up the feature. Soooo basically some kind of average, like you can get the points yourself using ...FeatureClassToNumPyArray… with the 'explode_to_points' option. Voila! the points and their coordinates, ergo, the averages in some form (weighted or simple)
I tossed in a bounding container so you could see the points.
Specify the input featureclass (polygon, polyline or multipoint),
the output featureclass,
select feature to point from the tool selection and
The variant shown here is showing the full shape as input. A tweak, enables you to separate out multipart shapes if you want, or more simply use the ...Multipart to Singlepart... tool if you have a crushing need to carry over the attributes... It will save you a Join and arcpy has to do something occasionally.
I have code that checks the validity of the file paths. If you input or output paths contain spaces or other flotsam, then the tool will not produce any results. Why? Too many questions where file paths are the problem. I won't 'enable' the current practice
You can copy the contents of the folder on my GitHub pages. No fancy install, just create a folder, throw the stuff in, load the toolbox and give it a try.