【发布时间】:2021-03-05 11:19:15
【问题描述】:
我有以下输出
[ 1. 3. 5. 7. 9. 11. 13. 15. 17. 19. 21. 23. 25. 27.
29. 31. 33. 35. 37. 39. 41. 43. 45. 47. 97. 99. 101. 103.
105. 107. 109. 111. 113. 115. 117. 119. 121. 123. 125. 127. 129. 131.
133. 135. 137. 139. 141. 143.]
我想把它改成下面的样子
[[1. 3. 5. 7. 9. 11. 13. 15.]
[17. 19. 21. 23. 25. 27. 29. 31.]
[33. 35. 37. 39. 41. 43. 45. 47.]
[97. 99. 101. 103. 105. 107. 109. 111.]
[113. 115. 117. 119. 121. 123. 125. 127.]
[129. 131. 133. 135. 137. 139. 141. 143.]]
我尝试使用a.resize(6, 8),但它给了我这个错误:“调整大小仅适用于单段数组”
此外,当我尝试使用a.reshape(6, 8) 时,它给了我相同的数组。
我不明白这是什么原因,因为我已经测试了另一个阵列并且运行良好。
【问题讨论】:
-
reshape无法就地工作。它返回一个新数组:b = a.reshape(6,8)。resize方法确实可以就地工作,但结果是对它所使用的数组类型很挑剔。除非我们需要更改元素的总数,否则我们通常使用reshape。
标签: python python-3.x numpy resize reshape