diff --git a/gstlal/python/pipeio.py b/gstlal/python/pipeio.py
index 5027660f0cf8389f36d4ed87557e4893b25af652..4630a4a52b04e877bbe7dde1313422ccd25e0d55 100644
--- a/gstlal/python/pipeio.py
+++ b/gstlal/python/pipeio.py
@@ -281,6 +281,10 @@ def to_gvalue_array(arr):
 	# handle segments as guint64
 	if isinstance(arr, segment):
 		st = Gst.Structure(f"converter, array=(guint64) < {arr[0]:d}, {arr[1]:d} >")
+	elif isinstance(arr, numpy.ndarray):
+		arr = arr.tolist()
+		st = Gst.Structure.new_empty("converter")
+		st["array"] = Gst.ValueArray(list(arr))
 	else:
 		st = Gst.Structure.new_empty("converter")
 		st["array"] = Gst.ValueArray(list(arr))