> Can you elaborate on this?

When `average="sample"` you are swapping precision and recall's calculation. You can see this from the following:
```
+    >>> from sklearn.metrics import precision_recall_fscore_support
+    >>> y_true = np.array([[0.0, 1.0, 0.0], [1.0, 1.0, 0.0], [0.0, 0.0, 1.0]])
+    >>> y_pred = np.ones((3, 3))
+    >>> precision_recall_fscore_support(y_true, y_pred, average='macro')
+    ... # doctest: +ELLIPSIS
+    (0.44..., 1.0, 0.59..., None)
+    >>> precision_recall_fscore_support(y_true, y_pred, average='micro')
+    ... # doctest: +ELLIPSIS
+    (0.44..., 1.0, 0.61..., None)
+    >>> precision_recall_fscore_support(y_true, y_pred, average='weighted')
+    ... # doctest: +ELLIPSIS
+    (0.499..., 1.0, 0.65..., None)
+    >>> precision_recall_fscore_support(y_true, y_pred, average='samples')
+    ... # doctest: +ELLIPSIS
+    (1.0, 0.44..., 0.59..., None)
```
Notice recall is 1, 1, 1, .44; and precision is .44, .44, .5, 1.

> As far as I know, test are perform for both multilabel type.

Yes, but if you test for `y_true = np.array([[0.0, 1.0, 0.0], [1.0, 1.0, 0.0], [0.0, 0.0, 1.0]])` and `y_pred = np.ones((3, 3))`, then perhaps use the equivalent seq-of-seqs representation: `y_true = [['b'], ['a', 'b'], ['c']]` and `y_pred = [['a', 'b', 'c'], ['a', 'b', 'c'], ['a', 'b', 'c']]`, so we can see that the results are identical.