I've recently observed field names and data types are different.
1) For example, column names now use field name aliases, rather than field names.
2) And many fields, previously read in as "object" (using Pandas), are now defaulting to float64, int64.
A shapefile's fields can only contain one datatype which should never result in an object array (at least not in Numpy) but should be either a variant of int or float if the columns is numeric. I would check to see how they are read in as a featureclass in arcmap. An alias, if set, may be an option set somewhere, but it is not a default when bringing shapefiles into arcmap or Numpy.
Can you say where you are downloading the shapefile from? Is it an app or just a web map? Is it through a web map, or through the information data page of the web layer?
I'm exporting a feature layer to a shapefile using AGOL's export operation (View Details -> Export to shapefile).
float64 is the default data type for Pandas, so I think AGOL previously space filled non-numeric fields in the shapefile, even when the field was empty.