Outer product
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 52/100
Research direction
Start by locating ArrayBase's existing dot and reshape APIs and the implementation of similar array operations. Add the proposed one-dimensional outer-product API, then add coverage for the shown vectors and confirm that the resulting two-dimensional values match the expected outer product.
Written by the indexing model from the issue text.
Description
I found that ArrayBase has no equivalent method to np.outer of numpy. This is quite surprising because outer product is a standard feature and is trivial to implement.
For example, by refering to the implementation of np.outer, we can implement ArrayBase's outer as:
pub fn outer(x: &Array<f64, Ix1>, y: &Array<f64, Ix1>) -> Array<f64, Ix2> {
let (size_x, size_y) = (x.shape()[0], y.shape()[0]);
let x_reshaped = x.view().into_shape((size_x, 1)).unwrap();
let y_reshaped = y.view().into_shape((1, size_y)).unwrap();
x_reshaped.dot(&y_reshaped)
}
then
let a = array![1., 2., 3.];
let b = array![1., 2., 3.];
let outer = a.outer(&b);
There is a similar issue/pull request #690, but it implements Kronecker product not outer.
- Dominant language
- Rust
- Stars
- 4.3k
- Forks
- 391
- PR merge metrics
- No merged PRs in 30d
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from rust-ndarray/ndarray
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
rust-ndarray/ndarray#1612 · 1 comment ·
-
Difficulty 4/5 3-5 days Newbie friendliness 48/100
rust-ndarray/ndarray#1617 · 1 comment ·
-
bug good first issue
Difficulty 3/5 1-2 days Newbie friendliness 68/100
rust-ndarray/ndarray#1615 · 1 comment ·
-
Difficulty 4/5 3-5 days Newbie friendliness 48/100
rust-ndarray/ndarray#1610 ·
-
Difficulty 3/5 1-2 days Newbie friendliness 72/100
rust-ndarray/ndarray#1609 ·
All issues in rust-ndarray/ndarray
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
kwakseongjae/auto-hwp#319 ·
-
area:cli bug filter-quality good first issue priority:medium
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
-
Difficulty 1/5 Under an hour Newbie friendliness 72/100
bevyengine/bevy#25861 ·
-
comp-datalake
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
ClickHouse/ClickHouse#121222 ·
-
enhancement remote
Difficulty 2/5 1-3 hours Newbie friendliness 68/100