如果要在NumPy中使用特定的列,可以执行data[:, columnslist]
。例如,如果您想要第1列和第9列
data[:, [1, 9]]
如何使用Rust的ndarray做到这一点?我经历过ndarray
for NumPy users,但他们没有任何类似的例子。下面是我尝试过的。
let a = arr2(&[[1., 2., 3.], [4., 5., 6.]]);
let b = stack(Axis(0), &[a.column(1).view(), a.column(2).view()]).unwrap();
let b = Array::from_iter(b.iter());
let b = b.reshape((2, 2));
出现错误:
error[E0277]: the trait bound `ndarray::OwnedRepr<&{float}>: ndarray::data_traits::DataShared` is not satisfied
--> src/main.rs:143:15
|
143 | let b = b.reshape((2,2));
| ^^^^^^^ the trait `ndarray::data_traits::DataShared` is not implemented for `ndarray::OwnedRepr<&{float}>`
答案 0 :(得分:2)
根据the ndarray docs,reshape
仅可用于ArcArray
。对于任何其他数组,请使用into_shape
:
let b = b.into_shape((2, 2));