程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

使用占位符将数组调整为不可能的形状

发布于2020-01-16 08:29     阅读(853)     评论(0)     点赞(30)     收藏(0)


我有一个要重组的数组,以解决前端对象按此顺序显示的问题。

'a' 'd' 'g'
'b' 'e' 'h'
'c' 'f' 'i'

当它们应显示为

'a' 'b' 'c'
'd' 'e' 'f'
'g' 'h' 'i'

我通过使用以下代码解决了这个问题:

results = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i']
results = np.array(results).reshape(int(len(results) / 3), 3).T.ravel().tolist()

我现在遇到的问题是,当我得到的数据数组的长度不能被3整除时,例如

['a']

我懂了

ValueError:无法将大小为1的数组重塑为形状(0,3)

最好的方法是用占位符填充它,然后在调整大小后删除那些占位符,还是numpy中有内置功能来处理这些类型的Scenerios?同样在我的实际代码中,数组中填充了对象,而不是单个字母,因此我不太确定占位符的最佳做法是什么。


解决方案


重新整形之前如何将结果大小填充到最接近的3的倍数,然后可以在转换回列表之后过滤空值

>>> results = ['a']
>>> l = len(results)
>>> n = int(l/3)+1 if l%3 else int(l/3)
>>> np.pad(np.array(results), ((0,n*3-l)), mode='constant').reshape((n,3), order='F')
array([['a', '', '']], dtype='<U1')


所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:https://www.pythonheidong.com/blog/article/224000/aac103b47522221bddc7/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

30 0
收藏该文
已收藏

评论内容:(最多支持255个字符)