发布于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黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!