python - 错误:无法将大小为 65536 的数组重新整形为形状 (2,227)
问题描述
我有一个数据,我用下面的代码读取它。
file_path0='C:\\Users\\ASUS\\Downloads\\A03VM.bin'
def read_file():
data=np.fromfile(file_path0,np.float64)
print(data)
return data
然后我想把它变成二维。我运行下面的代码:
data=np.reshape(data, (2,227))
但我收到此错误:
无法将大小为 65536 的数组重塑为形状 (2,227)
我能做些什么?问题是什么?
解决方案
因此,您需要使用参数进行重塑,-1
这意味着您将numpy
推断出正确的尺寸。
因此,如果您想将其重塑为第一个维度,2
您应该执行以下操作:
import numpy as np
x = np.zeros((65536,))
print(x.shape) # (65536,)
x_reshaped = np.reshape(x, (2, -1))
print(x_reshaped .shape) # (2, 32768)
如果要推断第一个维度,则需要执行以下操作:
import numpy as np
x = np.zeros((65536,))
print(x.shape) # (65536,)
x_reshaped = np.reshape(x, (-1, 256))
print(x_reshaped .shape) # (256, 256)
请注意,在第二种情况下将227
不起作用,因为65536/227不是整数值,因此numpy
无法推断它。
您可以参考文档:
新形状应与原始形状兼容。如果是整数,则结果将是该长度的一维数组。一个形状维度可以是-1。在这种情况下,该值是从数组的长度和剩余维度推断出来的。
推荐阅读
- sql - SQL如何根据“较早日期”条件选择多个列
- c# - Razor 页面与服务器端 Blazor
- css - 如何为动画设置离子菜单过渡效果
- android - Android:即使在 LocationSettingsRequest 中使用 setEnableBle 后也无法扫描 BLE 设备
- ssl - 无法使用在 fabric-ca 中启用的 tls 注册对等点
- ios - iOS Safari 在按下浏览器后退按钮后清除表单字段
- php - php如何检查变量字符串?
- laravel - 从传单中的数据库加载标记
- android - onClick 按钮的异常行为
- kotlin - Kotlin:类内的函数与类外的 .kt 文件内的差异