title: What is Pool in Catboost?When to use Pool instead of numpy array?
body: <p>I use this code to test CatBoostClassifier.</p>
  <pre><code>import numpy as np
  from catboost import CatBoostClassifier, Pool
  
  # initialize data
  train_data = np.random.randint(0, 100, size=(100, 10))
  train_labels = np.random.randint(0, 2, size=(100))
  test_data = Pool(train_data, train_labels) #What is Pool?When to use Pool?
  # test_data = np.random.randint(0,100, size=(20, 10)) #Usually we will use numpy array,will not use Pool
  
  model = CatBoostClassifier(iterations=2,
                             depth=2,
                             learning_rate=1,
                             loss_function='Logloss',
                             verbose=True)
  # train the model
  model.fit(train_data, train_labels)
  # make the prediction using the resulting model
  preds_class = model.predict(test_data)
  preds_proba = model.predict_proba(test_data)
  print(&quot;class = &quot;, preds_class)
  print(&quot;proba = &quot;, preds_proba)
  </code></pre>
  <p>The description about Pool is like this:</p>
  <blockquote>
  <p>Pool used in CatBoost as a data structure to train model from.</p>
  </blockquote>
  <p>I think usually we will use numpy array,will not use Pool.</p>
  <p>For example we use:</p>
  <pre><code>test_data = np.random.randint(0,100, size=(20, 10))
  </code></pre>
  <p>I did not find any more usage of Pool, so I want to know when we will use Pool instead of numpy array?</p>