9

My use case is simple, i have performed some kind of operation on image and the resulting feature vector is a numpy object of shape rowX1000(what i mean to say is that the row number can be variable but column number is always 1000)

I want to store this numpy array in mysql. No kind of operation is to be performed on this array. The query will be simple given a image name return the whole feature vector. so is there any way in which the array can be stored (something like a magic container which encapsulates the array and then put it on the table and on retrieval it retrieves the magic container and pops out the array)

I want to do this in python. If possible support with a short code snippit of how to put the data in the mysql database.

2 Answers 2

8

You could use ndarray.dumps() to pickle it to a string then write it to a BLOB field? Recover it using numpy.loads()

Sign up to request clarification or add additional context in comments.

1 Comment

ndarray.dumbs() returns the ndarray serialized as bytes. So, how can you format it into an SQL query?
3

You can also serialize it using numpy.getbuffer and numpy.frombuffer to make it independent of pickle, like

bf = np.getbuffer(np.ones((2,3), dtype=np.float32))
# store and read ...
np.frombuffer(bf, dtype=np.float32).reshape(2,3)

only you have to record the shape of the array as well if necessary.

1 Comment

Something has changed you now need bytes(memoryview(arr))

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.