Cryo-electron tomography (CET) is a three-dimensional imaging technique for structural studies of macromolecules under close-to-native conditions. In-depth analysis of macromolecule populations depicted in tomograms requires identification of subtomograms corresponding to putative particles, averaging of subtomograms to enhance their signal, and classification to capture the structural variations among them. Here, we introduce the open-source platform PyTom that unifies standard tomogram processing steps in a python toolbox. For subtomogram averaging, we implemented an adaptive adjustment of scoring and sampling that clearly improves the resolution of averages compared to static strategies. Furthermore, we present a novel stochastic classification method that yields significantly more accurate classification results than two deterministic approaches in simulations. We demonstrate that the PyTom workflow yields faithful results for alignment and classification of simulated and experimental subtomograms of ribosomes and GroEL14/GroEL14GroES7, respectively, as well as for the analysis of ribosomal 60S subunits in yeast cell lysate. PyTom enables parallelized processing of large numbers of tomograms, but also provides a convenient, sustainable environment for algorithmic development.