I have the following array:
X = np.array([image_array_to_vector1,image_array_to_vector2,image_array_to_vector3,image_array_to_vector4])
A print out of X
looks as follows:
[array([167, 167, 169, ..., 1, 1, 1], dtype=uint8)
array([42, 43, 43, ..., 41, 36, 34], dtype=uint8)
array([0, 0, 0, ..., 0, 0, 0], dtype=uint8)
array([0, 0, 0, ..., 0, 0, 0], dtype=uint8)]
When I try to save the data as txt:
X_to_text_file = np.savetxt('x.txt',X)
I get the following:
File "/Library/Python/2.7/site-packages/numpy/lib/npyio.py", line 1258, in savetxt
% (str(X.dtype), format))
TypeError: Mismatch between array dtype ('object') and format specifier ('%.18e')
Why is that? How can I solve the issue?
Thanks.
It's a little difficult to duplicate this without some example data, but here is what I came up with.
arr = np.array([np.array([1,2,3]), np.array([1,2,3,4])])
arr
array([array([1, 2, 3]), array([1, 2, 3, 4])], dtype=object)
np.savetxt('x.txt', arr)
TypeError: Mismatch between array dtype ('object') and format specifier ('%.18e')
As pointed out by @Artier there is a little snippet at the end of the accepted answer in Write object array to .txt file
that points out you can just save the array as a string with fmt='%s'
. Using this format seems to solve the problem for me (again I can't recreate your issue exactly without a sample of data).
np.savetxt('x.txt', arr, fmt='%s')
I would point out that if you are looking to save disparate arrays and want a single location to keep them savez
is very useful.