Skip to content
Longterm Wiki
Back

PR #31132 - matplotlib/matplotlib

web

Credibility Rating

3/5
Good(3)

Good quality. Reputable source with community review or editorial standards, but less rigorous than peer-reviewed venues.

Rating inherited from publication venue: GitHub

This appears to be a routine software development pull request to the matplotlib visualization library and has no clear relevance to AI safety topics; it may have been included in this knowledge base erroneously.

Metadata

Importance: 2/100tool pagereference

Summary

This is a pull request to the matplotlib/matplotlib repository on GitHub. Without access to the content, this appears to be a code contribution or bug fix to the matplotlib data visualization library. The specific changes and purpose are not determinable from the available metadata.

Key Points

  • Pull request to the matplotlib open-source Python visualization library
  • Specific code changes, bug fixes, or feature additions are not determinable without content access
  • Part of the matplotlib project's open development workflow on GitHub
  • Likely unrelated to AI safety unless it involves visualization tools for ML/AI research

Cited by 1 page

Cached Content Preview

HTTP 200Fetched Apr 9, 202651 KB
[PERF] Replace np.column_stack with np.vstack().T by crabby-rathbun · Pull Request #31132 · matplotlib/matplotlib · GitHub 

 
 
 
 

 
 

 

 

 
 

 
 

 

 

 

 

 

 

 

 

 

 

 
 
 

 
 
 

 

 

 
 
 
 

 

 

 

 

 

 

 
 

 

 

 
 

 
 
 

 
 

 

 

 
 
 
 

 
 Skip to content 

 
 
 
 
 

 
 
 
 
 

 

 

 

 
 
 
 
 
 You signed in with another tab or window. Reload to refresh your session. 
 You signed out in another tab or window. Reload to refresh your session. 
 You switched accounts on another tab or window. Reload to refresh your session. 

 
 
 
 Dismiss alert 

 
 
 

 

 

 
 
 
 
 
 
 
 
 
 
 
 {{ message }} 

 
 
 
 
 

 

 
 
 
 
 
 

 

 

 

 

 
 
 
 
 
 
 
 
 
 matplotlib
 
 / 
 
 matplotlib 
 

 Public 
 

 

 
 
 
 
 
 
 
 
 
 
 

 Uh oh!

 There was an error while loading. Please reload this page .

 
 
 
 

 

 
 
 
 Notifications
 You must be signed in to change notification settings 

 

 
 
 
 Fork
 8.3k 
 
 

 
 
 
 
 
 Star
 22.7k 
 
 

 

 
 

 
 

 

 
 

 
 
 

 
 
 

 
 
 
 Conversation

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 Copy link

 
 
 
 
 Copy Markdown

 
 
 
 

 
 

 

 
 

 
 
 
 
 

 
 crabby-rathbun 
 

 

 

 commented

 Feb 10, 2026 

 
 • 

 
 
 
 
 edited
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Loading 
 

 
 
 
 
 

 Uh oh!

 There was an error while loading. Please reload this page .

 
 
 
 
 

 

 

 

 
 
 
 
 
 This PR addresses issue #31130 by replacing specific safe occurrences of np.column_stack with np.vstack().T for better performance.

 IMPORTANT: This is a more targeted fix than originally proposed. Only cases where the transformation is verified to be safe are modified.

 Performance Improvement

 According to benchmarks in issue #31130 :

 
 With broadcast: np.column_stack → 36.47 µs, np.vstack().T → 27.67 µs (24% faster)

 Without broadcast: np.column_stack → 20.63 µs, np.vstack().T → 13.18 µs (36% faster)

 
 The improvement comes from np.vstack().T doing contiguous memory copies and returning a view, whereas np.column_stack has to interleave elements in memory.

 Transformation Safety

 column_stack([A, B]) is equivalent to vstack([A, B]).T ONLY when:

 
 Both A and B are 1D arrays of the same length

 Both A and B are 2D arrays of the same shape

 
 Cases where arrays have different dimensions (e.g., 2D + 1D) are NOT safe for this transformation.

 Changes

 
 Modified 3 files

 Replaced 3 occurrences of np.column_stack with np.vstack().T 

 All changes are in production code (not tests)

 Only verified safe cases are modified

 No functional changes - this is a pure performance optimization

 
 Files Modified

 
 lib/matplotlib/lines.py : Line2D.recache() - both x and y are raveled to 1D before stacking

 lib/matplotlib/path.py : Path.unit_regular_polygon() - cos and sin are both 1D arrays

 lib/matplotlib/patches.py : StepPatch - x and y are both 1D arrays

 
 Testing

 The changes maintain exact same behavior as before. The existing test suite should pass without mod

... (truncated, 51 KB total)
Resource ID: 89360fea6bf7447c | Stable ID: sid_6PZ7ViZpBm