user3262424
user3262424

Reputation: 7479

Pipe numpy data in Linux?

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

Answers (3)

Andrew
Andrew

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

Wang
Wang

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

Ignacio Vazquez-Abrams
Ignacio Vazquez-Abrams

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

Related Questions