axs[row, col].imshow(eig_vecs[:, i].reshape((64, 64)), cmap='gray') 报错内容为:Image data of dtype complex128 cannot be converted to float
时间: 2024-05-06 17:14:49 浏览: 132
openssh-8.3p1-1.axs7.x86_64.zip
这个错误通常是因为 `eig_vecs` 数组的数据类型是复数类型 `complex128`,而 `imshow` 函数只支持浮点类型的数据。你可以尝试将 `eig_vecs` 数组的数据类型转换为实数类型 `float64`,例如:
```python
axs[row, col].imshow(eig_vecs[:, i].real.reshape((64, 64)), cmap='gray')
```
这里使用了 `real` 方法将复数数组转换为实数数组,然后再进行 `imshow`。如果你需要显示复数数组,可以使用 `numpy.abs()` 函数计算其模长,例如:
```python
axs[row, col].imshow(numpy.abs(eig_vecs[:, i]).reshape((64, 64)), cmap='gray')
```
阅读全文