NumPy and GSL vectors and matrices differ slightly. 1-dimensional arrays and GSL Vectors can be interchanged. The difference between the two is mainly that Numpy counts the stride in bytes whereas GSL counts it in the basis type.
2-dimensional Numpy arrays use the stride concept for both dimensions whereas the GSL matrices use an offset tda. So they assume contiunes lines, with some elements on the line not used. Here one could think of a full featured matrix object, which can interoperate with a numeric array simulating an Matrix object. Such a object would be useful to allow prototyping of linear algebra systems in python. The next point needs to be implemented as well.
optional reused return object: Numpy allows to add an optional argument to many functions, which is to be used as return argument. This avoids the need to delete and reallocate objects.