test_spectral_embedding_two_components[float32-lobpcg] fails with scipy 1.10

### Describe the bug

On openSUSE Tumbleweed, when updating scipy to 1.10.0, a test starts to fail when packaging scikit-learn.

### Steps/Code to Reproduce

```
docker pull opensuse/tumbleweed
docker run -it --name tumbleweed-sklearn opensuse/tumbleweed
```

# docker and openSUSE Tumbleweed reproducer

```shell
zypper in wget libgomp1 python310-{base,joblib,numpy,scipy,threadpoolctl,xml,pytest,pytest-rerunfailures,pytest-xdist}
wget https://download.opensuse.org/repositories/home:/bnavigator:/branches:/devel:/languages:/python:/numeric/openSUSE_Tumbleweed/x86_64/python310-scikit-learn-1.2.0-52.2.x86_64.rpm
rpm -i python310-scikit-learn-1.2.0-52.2.x86_64.rpm
# succeeds with scipy 1.9.3
pytest -vv --pyargs sklearn -n auto -k "test_spectral_embedding_two_components"
# update to scipy 1.10.0 from not yet released repository
wget https://download.opensuse.org/repositories/devel:/languages:/python:/numeric/openSUSE_Tumbleweed/devel%3Alanguages%3Apython%3Anumeric.repo
zypper ar devel\:languages\:python\:numeric.repo
zypper in --allow-vendor-change python310-scipy
# fails at [float32-lobpcg]
pytest -vv --pyargs sklearn -n auto -k "test_spectral_embedding_two_components"
```

# pip reproducer
```shell
pip install scikit-learn pytest pytest-xdist pytest-rerunfailures
# fails with scipy 1.10
pytest -vv --pyargs sklearn -n auto -k "test_spectral_embedding_two_components"
# downgrade to scipy 1.9
pip install 'scipy<1.10'
# succeeds
pytest -vv --pyargs sklearn -n auto -k "test_spectral_embedding_two_components"
```

### Expected Results

Successful test suite.

### Actual Results

```
============================================================ FAILURES ============================================================
_____________________________________ test_spectral_embedding_two_components[float32-lobpcg] _____________________________________
[gw1] linux -- Python 3.10.9 /usr/bin/python3.10

eigen_solver = 'lobpcg', dtype = <class 'numpy.float32'>, seed = 36

    @pytest.mark.parametrize(
        "eigen_solver",
        [
            "arpack",
            "lobpcg",
            pytest.param("amg", marks=skip_if_no_pyamg),
        ],
    )
    @pytest.mark.parametrize("dtype", [np.float32, np.float64])
    def test_spectral_embedding_two_components(eigen_solver, dtype, seed=36):
        # Test spectral embedding with two components
        random_state = np.random.RandomState(seed)
        n_sample = 100
        affinity = np.zeros(shape=[n_sample * 2, n_sample * 2])
        # first component
        affinity[0:n_sample, 0:n_sample] = (
            np.abs(random_state.randn(n_sample, n_sample)) + 2
        )
        # second component
        affinity[n_sample::, n_sample::] = (
            np.abs(random_state.randn(n_sample, n_sample)) + 2
        )
    
        # Test of internal _graph_connected_component before connection
        component = _graph_connected_component(affinity, 0)
        assert component[:n_sample].all()
        assert not component[n_sample:].any()
        component = _graph_connected_component(affinity, -1)
        assert not component[:n_sample].any()
        assert component[n_sample:].all()
    
        # connection
        affinity[0, n_sample + 1] = 1
        affinity[n_sample + 1, 0] = 1
        affinity.flat[:: 2 * n_sample + 1] = 0
        affinity = 0.5 * (affinity + affinity.T)
    
        true_label = np.zeros(shape=2 * n_sample)
        true_label[0:n_sample] = 1
    
        se_precomp = SpectralEmbedding(
            n_components=1,
            affinity="precomputed",
            random_state=np.random.RandomState(seed),
            eigen_solver=eigen_solver,
        )
    
        embedded_coordinate = se_precomp.fit_transform(affinity.astype(dtype))
        # thresholding on the first components using 0.
        label_ = np.array(embedded_coordinate.ravel() < 0, dtype=np.int64)
>       assert normalized_mutual_info_score(true_label, label_) == pytest.approx(1.0)
E       assert 0.002599829446209923 == 1.0 ± 1.0e-06
E         comparison failed
E         Obtained: 0.002599829446209923
E         Expected: 1.0 ± 1.0e-06

usr/lib64/python3.10/site-packages/sklearn/manifold/tests/test_spectral_embedding.py:150: AssertionError

```

### Versions

```shell
System:
    python: 3.10.9 (main, Dec 08 2022, 14:49:06) [GCC]
executable: /usr/bin/python3.10
   machine: Linux-6.1.2-1-default-x86_64-with-glibc2.36

Python dependencies:
      sklearn: 1.2.0
          pip: None
   setuptools: 65.6.3
        numpy: 1.24.1
        scipy: 1.10.0
       Cython: None
       pandas: None
   matplotlib: None
       joblib: 1.2.0
threadpoolctl: 3.1.0

Built with OpenMP: True

threadpoolctl info:
       user_api: blas
   internal_api: openblas
         prefix: libopenblas
       filepath: /usr/lib64/openblas-pthreads/libopenblas.so.0
        version: 0.3.21
threading_layer: pthreads
   architecture: Zen
    num_threads: 12

       user_api: openmp
   internal_api: openmp
         prefix: libgomp
       filepath: /usr/lib64/libgomp.so.1.0.0
        version: None
    num_threads: 12
```

COMMENT:
Thank you for the follow up. I am closing this issue, because it is fixed on the main branch. You are welcome to open another issue if it appears again.

Labels: Bug, Needs Triage