Skip to content

Conversation

@taldcroft
Copy link
Member

PR #3095 fixed a corner case issue where a single row item access of a multi-dimensional Column returned a Column object instead of the expected ndarray.

However, by adding a pure-Python override of the ndarray.__getitem__ method a significant performance penalty (factor of 10) was incurred for single-element item access (#3232). In the discussion of 3232 it was agreed to back out #3095, but in all the activity related to the 1.0 release this didn't get done.

This PR does the back out.

@taldcroft
Copy link
Member Author

@mdmueller - this is the fix I was talking about today.

@embray
Copy link
Member

embray commented Jul 8, 2015

How does this actually affect the API? Does it mean it returns single-element Column objects?

@embray
Copy link
Member

embray commented Jul 9, 2015

Nevermind, I went back and re-reviewed the discussion around this and looked at the tests, and I remember now. I have a fix for this that I think will retain the performance for the (more common) single-dimensional case, while still getting the desired behavior for the N-d case. Lemme see if I can get that going...

@taldcroft
Copy link
Member Author

That would be great @embray !

embray added a commit to embray/astropy that referenced this pull request Jul 9, 2015
…bclasses on an as-needed basis when using those columns to store multi-dimensional data. The new classes have the slower __getitem__ implementation, while the stock classes go straight through ndarray.__getitem__ and retain its performance.
embray added a commit to embray/astropy that referenced this pull request Jul 9, 2015
…bclasses on an as-needed basis when using those columns to store multi-dimensional data. The new classes have the slower __getitem__ implementation, while the stock classes go straight through ndarray.__getitem__ and retain its performance.
@embray embray removed this from the v1.1.0 milestone Jul 13, 2015
@embray
Copy link
Member

embray commented Jul 13, 2015

Superseded now by #3930

@embray embray closed this Jul 13, 2015
dhomeier pushed a commit to dhomeier/astropy that referenced this pull request Aug 11, 2015
…bclasses on an as-needed basis when using those columns to store multi-dimensional data. The new classes have the slower __getitem__ implementation, while the stock classes go straight through ndarray.__getitem__ and retain its performance.
@taldcroft taldcroft deleted the table-backout-3095 branch October 1, 2019 20:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants