"simulation"是一个包含237,569个元素(数字)的1D numpy数组,我要将其转换为673 x 353(673行,353列)的数组、文本或ASCII文件
范例
[1 2 3 4 5 6 7 8 9 10 11 12]
我需要它
this question中也讨论了类似的问题
列的数目Th0是3而不是相对大的数目(353)。
我试过了
import numpy as np
import pandas as pd
simulation = pd.read_csv("simulation.csv",header=None)
simulation_array = np.reshape(simulation, (673, 353))
# Save the array to a text file
np.savetxt("simulation_2D.txt", simulation_array, fmt="%d", delimiter=" ")
!有此错误
Traceback (most recent call last):
File "C:\Users\hp\AppData\Local\Programs\Python\Python36\lib\site-packages\pandas\core\internals\managers.py", line 1671, in create_block_manager_from_blocks
make_block(values=blocks[0], placement=slice(0, len(axes[0])))
File "C:\Users\hp\AppData\Local\Programs\Python\Python36\lib\site-packages\pandas\core\internals\blocks.py", line 2744, in make_block
return klass(values, ndim=ndim, placement=placement)
File "C:\Users\hp\AppData\Local\Programs\Python\Python36\lib\site-packages\pandas\core\internals\blocks.py", line 131, in __init__
f"Wrong number of items passed {len(self.values)}, "
ValueError: Wrong number of items passed 353, placement implies 1
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\hp\Desktop\pythonProject1\main.py", line 7, in <module>
simulation_array = np.reshape(simulation, (673, 353))
File "<__array_function__ internals>", line 6, in reshape
File "C:\Users\hp\AppData\Local\Programs\Python\Python36\lib\site-packages\numpy\core\fromnumeric.py", line 299, in reshape
return _wrapfunc(a, 'reshape', newshape, order=order)
File "C:\Users\hp\AppData\Local\Programs\Python\Python36\lib\site-packages\numpy\core\fromnumeric.py", line 55, in _wrapfunc
return _wrapit(obj, method, *args, **kwds)
File "C:\Users\hp\AppData\Local\Programs\Python\Python36\lib\site-packages\numpy\core\fromnumeric.py", line 48, in _wrapit
result = wrap(result)
File "C:\Users\hp\AppData\Local\Programs\Python\Python36\lib\site-packages\pandas\core\generic.py", line 1790, in __array_wrap__
return self._constructor(result, **d).__finalize__(
File "C:\Users\hp\AppData\Local\Programs\Python\Python36\lib\site-packages\pandas\core\frame.py", line 497, in __init__
mgr = init_ndarray(data, index, columns, dtype=dtype, copy=copy)
File "C:\Users\hp\AppData\Local\Programs\Python\Python36\lib\site-packages\pandas\core\internals\construction.py", line 234, in init_ndarray
return create_block_manager_from_blocks(block_values, [columns, index])
File "C:\Users\hp\AppData\Local\Programs\Python\Python36\lib\site-packages\pandas\core\internals\managers.py", line 1681, in create_block_manager_from_blocks
raise construction_error(tot_items, blocks[0].shape[1:], axes, e)
ValueError: Shape of passed values is (673, 353), indices imply (237569, 1)
Process finished with exit code 1
1条答案
按热度按时间wooyq4lh1#
就是这样@wjandrea谢谢
我忘了我以前将numpy数组保存到csv文件中,现在它是一个 Dataframe ,我必须将 Dataframe 转换回numpy数组,然后使用
simul=simulation.to_numpy()
对其进行整形成功了谢谢