sklearn PCA rotates a single vector

### Describe the bug

The issue we recently discovered is that sklearn PCA rotates the input when only a single variable is fed into the model.  

I am aware there are infinite rotations when there is a single vector fed into the model, however, the output from PCA should intuitively make sense. So I suggest hard coding this scenario (which I guess already done in R)


### Steps/Code to Reproduce
```python
import numpy as np
from sklearn.decomposition import PCA

x = np.array([1,2,3,4,5,6,7,8,9,10.]).reshape(-1,1).astype('float64')

p = PCA().fit_transform(x)
p
```
### output:
```
array([[ 4.5],
       [ 3.5],
       [ 2.5],
       [ 1.5],
       [ 0.5],
       [-0.5],
       [-1.5],
       [-2.5],
       [-3.5],
       [-4.5]])
```

as we see here the value 4.5 is corresponding to the smallest value in the set (1) and the value -4.5 is corresponding to the highest value in the input set (10).

### Expected Results:
```
array([[-4.5],
       [-3.5],
       [-2.5],
       [-1.5],
       [-0.5],
       [ 0.5],
       [ 1.5],
       [ 2.5],
       [ 3.5],
       [ 4.5]])
```



### Steps/Code to Reproduce

```
from sklearn.decomposition import PCA

x= np.array([1,2,3,4,5,6,7,8,9,10.]).reshape(-1,1).astype('float64')

p = PCA().fit_transform(x)
p
```

### Expected Results

```
array([[-4.5],
       [-3.5],
       [-2.5],
       [-1.5],
       [-0.5],
       [ 0.5],
       [ 1.5],
       [ 2.5],
       [ 3.5],
       [ 4.5]])
```

### Actual Results

```
array([[ 4.5],
       [ 3.5],
       [ 2.5],
       [ 1.5],
       [ 0.5],
       [-0.5],
       [-1.5],
       [-2.5],
       [-3.5],
       [-4.5]])
```

### Versions

```shell
System:
    python: 3.11.4 | packaged by Anaconda, Inc. | (main, Jul  5 2023, 13:47:18) [MSC v.1916 64 bit (AMD64)]
executable: e:\Users\***\miniconda3\python.exe
   machine: Windows-10-10.0.22621-SP0

Python dependencies:
      sklearn: 1.3.0
          pip: 23.2.1
   setuptools: 68.0.0
        numpy: 1.24.3
        scipy: 1.11.1
       Cython: None
       pandas: 2.0.3
   matplotlib: 3.7.1
       joblib: 1.2.0
threadpoolctl: 2.2.0

Built with OpenMP: True

threadpoolctl info:
       filepath: E:\Users\***\miniconda3\Library\bin\mkl_rt.2.dll
         prefix: mkl_rt
       user_api: blas
   internal_api: mkl
        version: 2023.1-Product
    num_threads: 8
threading_layer: intel

       filepath: E:\Users\***\miniconda3\vcomp140.dll
         prefix: vcomp
       user_api: openmp
   internal_api: openmp
        version: None
    num_threads: 16

       filepath: E:\Users\***\miniconda3\Library\bin\libiomp5md.dll
         prefix: libiomp
       user_api: openmp
   internal_api: openmp
        version: None
    num_threads: 16
```

COMMENT:
It is not just one principal direction. It selects some other directions as well and rotates them 180 (negates),

To see this, use:
```python
import numpy as np
from sklearn.decomposition import PCA
import sklearn.datasets as datasets

dataset = datasets.load_diabetes().data

X = dataset * (np.sqrt(1/(dataset.shape[0])))
U, S, Vh = np.linalg.svd(X)
V = Vh.T # principal (column) vectors matrix: calculation using numpy

pca = PCA()
pca.fit(dataset).transform(dataset)
V_scikit = pca.components_.T
print(V/V_scikit)
```
### Output:

```
[[-1.  1.  1.  1.  1. -1.  1.  1. -1. -1.]
 [-1.  1.  1.  1.  1. -1.  1.  1. -1. -1.]
 [-1.  1.  1.  1.  1. -1.  1.  1. -1. -1.]
 [-1.  1.  1.  1.  1. -1.  1.  1. -1. -1.]
 [-1.  1.  1.  1.  1. -1.  1.  1. -1. -1.]
 [-1.  1.  1.  1.  1. -1.  1.  1. -1. -1.]
 [-1.  1.  1.  1.  1. -1.  1.  1. -1. -1.]
 [-1.  1.  1.  1.  1. -1.  1.  1. -1. -1.]
 [-1.  1.  1.  1.  1. -1.  1.  1. -1. -1.]
 [-1.  1.  1.  1.  1. -1.  1.  1. -1. -1.]]
```

Labels: Bug