Reputation: 7479
Is it possible to pipe numpy data (from one python script ) into the other?
suppose that script1.py
looks like this:
x = np.zeros(3, dtype={'names':['col1', 'col2'], 'formats':['i4','f4']})
print x
Suppose that from the linux command, I run the following:
python script1.py | script2.py
Will script2.py
get the piped numpy data as an input (stdin)? will the data still be in the same format of numpy? (so that I can, for example, perform numpy operations on it from within script2.py
)?
Upvotes: 1
Views: 773
Reputation: 2892
See this question.
If you're willing to use the subprocess
module, you can share memory between processes to pass numpy arrays rapidly. If not, I've found saving to a file beats the pants off of piping, probably because converting the array to a string is so slow.
Upvotes: 0
Reputation: 3357
Check out the save
and load
functions. I don't think they would object to being passed a pipe instead of a file.
Upvotes: 3
Reputation: 799170
No, data is passed through a pipe as text. You'll need to serialize the data in script1.py
before writing, and deserialize it in script2.py
after reading.
Upvotes: 2