Skip to content

Commit 2a27ad1

Browse files
committed
deploy: ed24b34
1 parent d12a49c commit 2a27ad1

File tree

37 files changed

+581
-111
lines changed

37 files changed

+581
-111
lines changed

blog/announcing_the_consortium/index.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -424,6 +424,8 @@ <h2 id="where-we-go-from-here">Where we go from here</h2>
424424
<ul>
425425

426426

427+
<li><a href="../../blog/array_api_v2024_release/">2024 release of the Array API Standard</a> &ndash; 3 minutes
428+
427429
<li><a href="../../blog/eoss6_award/">CZI EOSS 6 Award to Advance Array Interoperability within the PyData Ecosystem</a> &ndash; 6 minutes
428430

429431
<li><a href="../../blog/array_api_v2023_release/">2023 release of the Array API Standard</a> &ndash; 10 minutes

blog/array_api_standard_release/index.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -307,6 +307,8 @@ <h2 id="next-steps-to-a-first-complete-standard">Next steps to a first complete
307307
<ul>
308308

309309

310+
<li><a href="../../blog/array_api_v2024_release/">2024 release of the Array API Standard</a> &ndash; 3 minutes
311+
310312
<li><a href="../../blog/eoss6_award/">CZI EOSS 6 Award to Advance Array Interoperability within the PyData Ecosystem</a> &ndash; 6 minutes
311313

312314
<li><a href="../../blog/array_api_v2023_release/">2023 release of the Array API Standard</a> &ndash; 10 minutes

blog/array_api_v2022_release/index.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -342,6 +342,8 @@ <h2 id="the-road-ahead">The Road Ahead</h2>
342342
<ul>
343343

344344

345+
<li><a href="../../blog/array_api_v2024_release/">2024 release of the Array API Standard</a> &ndash; 3 minutes
346+
345347
<li><a href="../../blog/eoss6_award/">CZI EOSS 6 Award to Advance Array Interoperability within the PyData Ecosystem</a> &ndash; 6 minutes
346348

347349
<li><a href="../../blog/array_api_v2023_release/">2023 release of the Array API Standard</a> &ndash; 10 minutes

blog/array_api_v2023_release/index.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -386,6 +386,8 @@ <h2 id="the-road-ahead">The Road Ahead</h2>
386386
<ul>
387387

388388

389+
<li><a href="../../blog/array_api_v2024_release/">2024 release of the Array API Standard</a> &ndash; 3 minutes
390+
389391
<li><a href="../../blog/eoss6_award/">CZI EOSS 6 Award to Advance Array Interoperability within the PyData Ecosystem</a> &ndash; 6 minutes
390392

391393
<li><a href="../../blog/array_api_v2022_release/">2022 release of the Array API Standard</a> &ndash; 8 minutes
Lines changed: 300 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,300 @@
1+
<!DOCTYPE html>
2+
<html lang="en-us">
3+
4+
<head>
5+
<meta name="generator" content="Hugo 0.97.0" />
6+
<meta charset="utf-8">
7+
<meta http-equiv="X-UA-Compatible" content="IE=edge">
8+
<meta name="viewport" content="width=device-width, initial-scale=1">
9+
<title> 2024 release of the Array API Standard </title>
10+
11+
12+
<meta name="description" content="The 2024 revision of the array API standard has been finalized and is ready for adoption by conforming array libraries.">
13+
14+
15+
16+
17+
18+
19+
20+
21+
<meta name="author" content="Athan Reines">
22+
23+
24+
<meta property="og:title" content="2024 release of the Array API Standard" />
25+
<meta property="og:description" content="The 2024 revision of the array API standard has been finalized and is ready for adoption by conforming array libraries." />
26+
<meta property="og:type" content="article" />
27+
<meta property="og:url" content="https://data-apis.org/blog/array_api_v2024_release/" /><meta property="article:section" content="blog" />
28+
<meta property="article:published_time" content="2025-02-27T08:00:00+00:00" />
29+
<meta property="article:modified_time" content="2025-02-27T08:00:00+00:00" />
30+
31+
32+
33+
34+
35+
36+
37+
38+
39+
40+
41+
42+
43+
<link rel="canonical" href="https://data-apis.org/blog/array_api_v2024_release/">
44+
45+
<link rel="icon" href="../../images/icon.png">
46+
47+
<link href="../../css/font.css" rel="stylesheet" type="text/css">
48+
<link href="../../css/kube.min.css" rel="stylesheet" type="text/css">
49+
<link href="../../css/kube.legenda.css" rel="stylesheet" type="text/css">
50+
<link href="../../css/highlight.css" rel="stylesheet" type="text/css">
51+
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.2/styles/default.min.css">
52+
<link rel="preconnect" href="https://fonts.gstatic.com">
53+
<link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;700&display=swap" rel="stylesheet">
54+
<link href="https://fonts.googleapis.com/css2?family=Source+Sans+Pro:ital,wght@0,300;0,400;0,700;1,400&display=swap" rel="stylesheet">
55+
<link href="../../css/master.css" rel="stylesheet" type="text/css">
56+
<link href="../../css/kube.demo.css" rel="stylesheet" type="text/css">
57+
58+
<link href="../../css/custom.css" rel="stylesheet" type="text/css">
59+
60+
<script src="../../js/jquery-2.1.4.min.js" type="text/javascript">
61+
</script>
62+
63+
<script type="text/javascript" src="../../js/tocbot.min.js"></script>
64+
<script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.2/highlight.min.js"></script>
65+
</head>
66+
67+
68+
<body class="page-kube">
69+
<header> <div class="show-sm">
70+
<div id="nav-toggle-box">
71+
<div id="nav-toggle-brand">
72+
<a href="../../">Consortium for Python Data API Standards</a>
73+
</div><a data-component="toggleme" data-target="#top" href="#" id="nav-toggle"><i class="kube-menu"></i></a>
74+
</div>
75+
</div>
76+
<div class="hide-sm" id="top">
77+
<div id="top-brand">
78+
<a href="../../">
79+
<img src="../../images/dark_blue_logo.png">
80+
</a>
81+
</div>
82+
<nav id="top-nav-main">
83+
<ul>
84+
85+
86+
<li><a href="https://data-apis.org/array-api/latest/" >Array API</a></li>
87+
88+
<li><a href="https://data-apis.org/dataframe-api/draft/" >DataFrame API</a></li>
89+
90+
<li><a href="../../blog/" >Blog</a></li>
91+
92+
<li><a href="../../annual-reports/" >Annual reports</a></li>
93+
94+
</ul>
95+
</nav>
96+
<nav id="top-nav-extra">
97+
<ul>
98+
99+
</ul>
100+
</nav>
101+
</div>
102+
</header>
103+
<main>
104+
<div class="push-center" itemscope itemtype="http://schema.org/BlogPosting">
105+
<meta itemprop="name" content="2024 release of the Array API Standard">
106+
<meta itemprop="description" content="The 2024 revision of the array API standard has been finalized and is ready for adoption by conforming array libraries."><meta itemprop="datePublished" content="2025-02-27T08:00:00+00:00" />
107+
<meta itemprop="dateModified" content="2025-02-27T08:00:00+00:00" />
108+
<meta itemprop="wordCount" content="609">
109+
<meta itemprop="keywords" content="APIs,standard,consortium,arrays,community," />
110+
<div id="hero">
111+
<h1 itemprop="headline"> 2024 release of the Array API Standard</h1>
112+
113+
<blockquote itemprop="description">The 2024 revision of the array API standard has been finalized and is ready for adoption by conforming array libraries.</blockquote>
114+
115+
<time class="post-time"><span class="icon">
116+
<i class="fa fa-clock-o" aria-hidden="true"></i>
117+
</span>
118+
<span>3 minute read</span>
119+
<span class="icon">
120+
<i class="fa fa-pencil" aria-hidden="true"></i>
121+
</span>
122+
123+
Published: <time datetime="2025-02-27T08:00:00&#43;00:00">27 Feb, 2025</time>
124+
125+
</time>
126+
</div>
127+
<div id="post-box">
128+
<div id="post" itemprop="articleBody">
129+
130+
<p>Another year, another milestone! We&rsquo;re excited to announce the release of the
131+
2024 revision of the Array API Standard, the latest iteration of our ongoing
132+
efforts to unify and standardize array programming across the PyData ecosystem.
133+
Since the standard&rsquo;s inception, our goal has been to facilitate
134+
interoperability between array libraries and enable a more consistent and
135+
predictable developer experience. This year&rsquo;s update continues that mission
136+
with key enhancements, new features, and clarifications that reflect the needs
137+
of the community.</p>
138+
<h2 id="key-enhancements-in-v202412">Key Enhancements in v2024.12</h2>
139+
<h3 id="scalar-argument-support">Scalar Argument Support</h3>
140+
<p>Previously, binary element-wise functions, such as <code>add</code>, <code>mul</code>, and others,
141+
required both input arguments to be arrays. This constraint has now been
142+
relaxed: scalars are now allowed as arguments, as long as at least one argument
143+
is an array. This change aligns with common practices in numerical computing
144+
workflows and makes it easier to write concise, readable code.</p>
145+
<h3 id="integer-array-indexing">Integer Array Indexing</h3>
146+
<p>Portable indexing semantics just got more powerful! The 2024 revision of the
147+
standard introduces support for indexing an array using tuples consisting
148+
solely of integers and integer arrays. This feature—a subset of NumPy&rsquo;s
149+
vectorized fancy indexing—was a highly requested addition from downstream
150+
users. It enables efficient random sampling and more flexible multi-dimensional
151+
indexing, making it easier to work with large datasets and tensors.</p>
152+
<p>For more details, see <a href="https://data-apis.org/array-api/latest/API_specification/indexing.html#integer-array-indexing"><em>Integer Array Indexing</em></a>
153+
in the specification.</p>
154+
<h3 id="new-api-additions">New API Additions</h3>
155+
<p>Several new APIs have been introduced in this release to expand functionality
156+
and improve usability:</p>
157+
<ul>
158+
<li><code>count_nonzero</code>: counts the number of nonzero elements in an array.</li>
159+
<li><code>cumulative_prod</code>: computes the cumulative product along a specified axis.</li>
160+
<li><code>take_along_axis</code>: selects elements from an array using indices along a
161+
given axis.</li>
162+
<li><code>diff</code>: computes the discrete difference between consecutive elements.</li>
163+
<li><code>nextafter</code>: returns the next representable floating-point value in the
164+
direction of another floating-point value.</li>
165+
</ul>
166+
<p>These additions further close the gap between the Array API Standard and
167+
established numerical computing libraries.</p>
168+
<h3 id="breaking-changes">Breaking Changes</h3>
169+
<p>With progress comes necessary refinements. This year&rsquo;s update includes two
170+
significant breaking changes:</p>
171+
<ul>
172+
<li><strong>Device-aware type promotion</strong>: The guidance for <code>result_type</code> and <code>can_cast</code>
173+
has been updated to require that type promotion rules account for device
174+
contexts when at least one operand is an array. This ensures that type
175+
promotion can be correctly handled across different hardware environments
176+
and accurately reflect device capabilities.</li>
177+
<li><strong>Refined handling of Python complex scalars</strong>: Previously, for binary
178+
operations involving an array and a Python scalar, the standard required
179+
that all scalar values be automatically converted to zero-dimensional
180+
arrays of the same type as the array operand. Now, if a Python <code>complex</code>
181+
scalar is used in an operation (e.g., <code>x * 1j</code>), the real-valued array
182+
operand should be promoted to a complex floating-point type of the same
183+
precision as the original array operand. This change better aligns with
184+
practical use cases involving complex numbers and helps improve developer
185+
ergonomics.</li>
186+
</ul>
187+
<h3 id="specification-clarifications">Specification Clarifications</h3>
188+
<p>Standards evolve not just through feature additions but also through
189+
refinements. Over the past year, we&rsquo;ve worked closely with implementers and
190+
downstream users to resolve ambiguities in the specification. These
191+
clarifications ensure that adopting the standard is as seamless as possible and
192+
that behavior is well-defined across implementations.</p>
193+
<h2 id="looking-ahead">Looking Ahead</h2>
194+
<p>The 2024 revision of the Array API Standard represents another step forward in
195+
making array interoperability a reality across the Python ecosystem. Every
196+
iteration of the standard reflects deep collaboration across the PyData
197+
community, with contributions from library maintainers, researchers, and
198+
practitioners.</p>
199+
<p>We encourage all implementers to adopt the latest version and welcome feedback
200+
from the community. If you&rsquo;re interested in contributing to future discussions,
201+
check out the <a href="https://github.com/data-apis/array-api">specification repository</a>
202+
and get involved!</p>
203+
<p>For full details on this release, see the <a href="https://data-apis.org/array-api/latest/changelog.html#v2024-12">changelog</a>.</p>
204+
<p>Here&rsquo;s to another year of advancing the frontier of array and tensor computing
205+
in Python!</p>
206+
207+
208+
</div>
209+
210+
<div class="">
211+
<p>
212+
Published
213+
214+
215+
by <span itemprop="author">Athan Reines</span>
216+
217+
218+
<time datetime="2025-02-27T08:00:00&#43;00:00">
219+
27 Feb, 2025
220+
</time>
221+
222+
in <span itemprop="articleSection"><a href="../../categories/consortium/">Consortium</a> and <a href="../../categories/standardization/">Standardization</a></span>
223+
224+
225+
and tagged <a href="../../tags/apis/">APIs</a>, <a href="../../tags/arrays/">arrays</a>, <a href="../../tags/community/">community</a>, <a href="../../tags/consortium/">consortium</a> and <a href="../../tags/standard/">standard</a>
226+
227+
using <span itemprop="wordCount">609</span> words.
228+
</p>
229+
230+
231+
232+
233+
234+
235+
<aside>
236+
<heade><strong>Related Content</strong></header>
237+
<hr>
238+
<ul>
239+
240+
241+
<li><a href="../../blog/eoss6_award/">CZI EOSS 6 Award to Advance Array Interoperability within the PyData Ecosystem</a> &ndash; 6 minutes
242+
243+
<li><a href="../../blog/array_api_v2023_release/">2023 release of the Array API Standard</a> &ndash; 10 minutes
244+
245+
<li><a href="../../blog/array_api_v2022_release/">2022 release of the Array API Standard</a> &ndash; 8 minutes
246+
247+
<li><a href="../../blog/array_api_standard_release/">First release of the Array API Standard</a> &ndash; 7 minutes
248+
249+
<li><a href="../../blog/announcing_the_consortium/">Announcing the Consortium for Python Data API Standards</a> &ndash; 11 minutes
250+
251+
<li><a href="../../blog/dataframe_standard_rfc/">Want to super-charge your library by writing dataframe-agnostic code? We&#39;d love to hear from you</a> &ndash; 5 minutes
252+
253+
<li><a href="../../blog/dataframe_protocol_rfc/">Towards dataframe interoperability</a> &ndash; 8 minutes
254+
255+
</ul>
256+
</aside>
257+
258+
259+
</div>
260+
261+
262+
263+
</div>
264+
</div>
265+
</main>
266+
<footer> <footer id="footer">
267+
<nav>
268+
<ul>
269+
<li><span>Consortium</span></li>
270+
<li>
271+
<a href="../../blog/">Blog</a>
272+
</li>
273+
<li>
274+
<a href="https://data-apis.org/array-api/latest/">Array API</a>
275+
</li>
276+
<li>
277+
<a href="https://github.com/data-apis">GitHub</a>
278+
</li>
279+
<li>
280+
<a href="https://github.com/data-apis/governance/blob/main/consortium_governance.md">Governance</a>
281+
</li>
282+
<li>
283+
<a href="https://github.com/data-apis/.github/blob/main/CODE_OF_CONDUCT.md">Code of Conduct</a>
284+
</li>
285+
</ul>
286+
</nav>
287+
<p>&copy Consortium Members; Licence MIT.</p>
288+
</footer>
289+
</footer>
290+
291+
292+
<script src="../../js/kube.js" type="text/javascript">
293+
</script>
294+
<script src="../../js/kube.legenda.js" type="text/javascript">
295+
</script>
296+
<script src="../../js/master.js" type="text/javascript">
297+
</script>
298+
</body>
299+
300+
</html>

blog/dataframe_protocol_rfc/index.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -338,6 +338,8 @@ <h2 id="what-about-a-full-dataframe-api">What about a full dataframe API?</h2>
338338
<ul>
339339

340340

341+
<li><a href="../../blog/array_api_v2024_release/">2024 release of the Array API Standard</a> &ndash; 3 minutes
342+
341343
<li><a href="../../blog/eoss6_award/">CZI EOSS 6 Award to Advance Array Interoperability within the PyData Ecosystem</a> &ndash; 6 minutes
342344

343345
<li><a href="../../blog/array_api_v2023_release/">2023 release of the Array API Standard</a> &ndash; 10 minutes

blog/dataframe_standard_rfc/index.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -281,6 +281,8 @@ <h2 id="resources">Resources</h2>
281281
<ul>
282282

283283

284+
<li><a href="../../blog/array_api_v2024_release/">2024 release of the Array API Standard</a> &ndash; 3 minutes
285+
284286
<li><a href="../../blog/eoss6_award/">CZI EOSS 6 Award to Advance Array Interoperability within the PyData Ecosystem</a> &ndash; 6 minutes
285287

286288
<li><a href="../../blog/array_api_v2023_release/">2023 release of the Array API Standard</a> &ndash; 10 minutes

blog/eoss6_award/index.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -292,6 +292,8 @@ <h2 id="funding-acknowledgment">Funding Acknowledgment</h2>
292292
<ul>
293293

294294

295+
<li><a href="../../blog/array_api_v2024_release/">2024 release of the Array API Standard</a> &ndash; 3 minutes
296+
295297
<li><a href="../../blog/array_api_v2023_release/">2023 release of the Array API Standard</a> &ndash; 10 minutes
296298

297299
<li><a href="../../blog/array_api_v2022_release/">2022 release of the Array API Standard</a> &ndash; 8 minutes

0 commit comments

Comments
 (0)