[Numpy-discussion] can int and float exists in one array?(about difference in indexing Matlab matrix and Numpy array)
oliphant at ee.byu.edu
Tue Nov 28 18:05:46 CST 2006
Zhang Sam wrote:
> Thanks for so many replies.
> In fact, I want to use several arrays to store the original data from
> a practical project. In every arrays, two or three column will be
> store the index. The main computation is still on matrices(float type)
> which is built from the original data. When building the main
> matrix, I need the repeated use of the index stored in the original
> data. So I hope both int and float can exist in one array with numpy,
> just for the original data.
I think you probably want to use a record-array here.
Matlab does not store both integers and floating point in the same
matrix. It stores integers *as* floating point in your float array.
Matlab just allows floating-point arrays to be used as indexes (because
for a long time there was only floating-point matrices in Matlab).
NumPy forces you to be explicit in using an integer array for indexing
into an array. You are mis-interpreting the situation with Matlab.
The accurate representation is that Matlab allows indexing with floating
point arrays. It would be possible to lift the restriction with NumPy,
but I suspect it's probably best to leave it the way it is so that users
are clear about how they want to convert from integers to floating-point.
More information about the Numpy-discussion