class_docstr: Each subcluster in a CFNode is called a CFSubcluster.
  
  A CFSubcluster can have a CFNode has its child.
  
  Parameters
  ----------
  linear_sum : ndarray, shape (n_features,), optional
      Sample. This is kept optional to allow initialization of empty
      subclusters.
  
  Attributes
  ----------
  n_samples_ : int
      Number of samples that belong to each subcluster.
  
  linear_sum_ : ndarray
      Linear sum of all the samples in a subcluster. Prevents holding
      all sample data in memory.
  
  squared_sum_ : float
      Sum of the squared l2 norms of all samples belonging to a subcluster.
  
  centroid_ : ndarray
      Centroid of the subcluster. Prevent recomputing of centroids when
      ``CFNode.centroids_`` is called.
  
  child_ : _CFNode
      Child Node of the subcluster. Once a given _CFNode is set as the child
      of the _CFNode, it is set to ``self.child_``.
  
  sq_norm_ : ndarray
      Squared norm of the subcluster. Used to prevent recomputing when
      pairwise minimum distances are computed.
class_docstr_tok: ["Each","subcluster","in","a","CFNode","is","called","a","CFSubcluster",".","A","CFSubcluster","can","have","a","CFNode","has","its","child",".","Parameters","--","--","--","--","--","linear_sum",":","ndarray",",","shape","(","n_features",",",")",",","optional","Sample",".","This","is","kept","optional","to","allow","initialization","of","empty","subclusters",".","Attributes","--","--","--","--","--","n_samples_",":","int","Number","of","samples","that","belong","to","each","subcluster",".","linear_sum_",":","ndarray","Linear","sum","of","all","the","samples","in","a","subcluster",".","Prevents","holding","all","sample","data","in","memory",".","squared_sum_",":","float","Sum","of","the","squared","l2","norms","of","all","samples","belonging","to","a","subcluster",".","centroid_",":","ndarray","Centroid","of","the","subcluster",".","Prevent","recomputing","of","centroids","when","``","CFNode.centroids_","``","is","called",".","child_",":","_CFNode","Child","Node","of","the","subcluster",".","Once","a","given","_CFNode","is","set","as","the","child","of","the","_CFNode",",","it","is","set","to","``","self.child_","``",".","sq_norm_",":","ndarray","Squared","norm","of","the","subcluster",".","Used","to","prevent","recomputing","when","pairwise","minimum","distances","are","computed","."]
code: def update(self, subcluster):
      self.n_samples_ += subcluster.n_samples_
      self.linear_sum_ += subcluster.linear_sum_
      self.squared_sum_ += subcluster.squared_sum_
      self.centroid_ = self.linear_sum_ / self.n_samples_
      self.sq_norm_ = np.dot(self.centroid_, self.centroid_)
  
imports: from __future__ import division
  import warnings
  import numpy
  from scipy import sparse
  from math import sqrt
  from ..metrics.pairwise import euclidean_distances
  from ..base import TransformerMixin, ClusterMixin, BaseEstimator
  from ..externals.six.moves import xrange
  from ..utils import check_array
  from ..utils.extmath import row_norms, safe_sparse_dot
  from ..utils.validation import check_is_fitted
  from ..exceptions import NotFittedError
  from .hierarchical import AgglomerativeClustering
label_desc: Use image node_id 2 for calling the _CFSubcluster obj's underlying member method code with example usage: obj.update(subcluster) without return types