我知道有几个问题已经被问及numpy.resize(array,new_size),但它对我没有任何帮助。现在,我有x_array.shape ==(1456,26)和x_array.shape ==(1456,1)。我需要一种让他们的形状平等的方式。我试过np.resize(x_array,y_array.shape),但它没有做任何事情(没有错误,没有改变)。是否有可能改变这样的形状?两者都是numpy.ndarray类型。谢谢。我无法调整大小numpy.ndarrays
-2
A
回答
1
从文档np.resize 返回具有指定形状的新数组。,所以x_array将会保留(1456,26)。
x_array = np.ones([1456, 26])
print x_array
y_array = np.ones([1456, 1])
print y_array
new_array = np.resize(x_array, y_array.shape)
print new_array
将需要将调整大小的数组分配给一个新的数组。
0
虽然在技术上可以调整大小与numpy.resize
一个numpy的阵列(见this answer,例如),它通常是更方便地使用功能强大的numpy array indexing实现转化的ndarray的形状相同的目标。
所以,如果你的问题是
I need a way to make their shapes equal,
有两种可能的解决方案:
要扩展
y_array
。要做到这一点只需要创建一个新的数组y_ext
,并复制从y_array
元素融入到它:y_ext = numpy.zeros((1456,26)) # y_ext.shape == (1456,26) y_ext[:,0] = y_array[:,0]
要修剪
x_array
。这是更简单:x_trimmed = x_array[:,0] # x_trimmed.shape == (1456,) y_trimmed = y_array[:,0] # y_trimmed.shape == (1456,)
注意,在后一种情况下x_trimmed
形状(1456,)
,不(1456,1)
。这就是为什么y_array
也被“修剪”(它变成1-dim阵列),所以x_trimmed
和y_trimmed
形状变得真正相等。
相关问题
- 1. 无法调整大小UITextView
- 2. Libgdx:Clicklistener无法调整大小
- 3. Vagrant Ubuntu无法调整磁盘大小
- 4. TextField无法在RowLayout内调整大小
- 5. TeleUSE窗口无法调整大小
- 6. 无法调整JButton的大小
- 7. 无法重新调整大小fancybox 2
- 8. WPF无法调整控件的大小
- 9. EditText无端调整大小
- 10. summernote - 在html中显示调整大小后的图像无法调整大小
- 11. 调整列大小算法
- 12. 我无法让UIScrollView根据UIWebView调整它的大小
- 13. ExtJS 4 - 调整大小后调整大小后调整大小的内部组件不会调整大小resizeHandles
- 14. 调整大小DIV调整
- 15. 为什么我的NSWindow中的NSViews在调整窗口大小时无法调整大小?
- 16. Jquery可调整大小显示大小,同时调整大小
- 17. 调整大小
- 18. 如何让图像在放大UIScrollView时无法调整大小?
- 19. NSView调整大小
- 20. 调整大小BitmapImage
- 21. 调整大小flash.media.Video
- 22. 调整大小WritableBitmap
- 23. 调整UIFont大小
- 24. 调整大小MKMapView
- 25. Mapbox调整大小
- 26. JFXPanel调整大小
- 27. Bufferedimage调整大小
- 28. UIWebView调整大小
- 29. Textarea调整大小
- 30. HTML2PDF调整大小
我认为你正在寻找'reshape'。 – ForceBru
重塑给我这个错误:“ValueError:无法重新塑造大小为1456的数组(1456,26)” – Derek
为什么你想让他们的形状相等?在操作中使用?如果是这样,他们在一个轴上匹配,所以这可以很容易地完成。请注意,无法添加数据,您无法从(1456,1)更改为(1456,26)。但是,您可以添加一个额外的轴来处理。 – ayhan