7

次のような配列があります。

k = numpy.array([(1.,0.001), (1.1, 0.002), (None, None), 
                 (1.2, 0.003), (0.99, 0.004)])

そうでない値をプロットし(None, None)、配列値のインデックスを保持したい。つまり、(None, None)値があるところにはどこでもギャップが必要です。

それが完了したら、プロットしたいと思います

y = k[:,0] + k[:,1]

しかし、配列を一緒に追加することさえできません。配列をマスクしようとしましたが、元の配列のインデックス値が失われましたk

最小限の例:

import matplotlib.pyplot as pyplot
import numpy

x = range(5)
k = numpy.array([(1.,0.001), (1.1, 0.002), (None, None), 
                 (1.2, 0.003), (0.99, 0.004)])

Fig, ax = pyplot.subplots()

# This plots a gap---as desired
ax.plot(x, k[:,0], 'k-')

# I'd like to plot
#     k[:,0] + k[:,1]
# but I can't add None

# Here I get rid of the (None, None) values so I can add
# But I lose the original indexing
mask = k != (None, None)
y = k[mask].reshape((-1,2))

ax.plot(range(len(y)), y[:,0]+y[:,1], 'k--')
4

2 に答える 2