在MATLAB和numpy中,可以通過索引數組索引矢量並獲得相同形狀的結果,例如,通過R中的數組索引矢量
A = [1 1 2 3 5 8 13];
B = [1 2; 2 6; 7 1; 4 4];
A(B)
## ans =
##
## 1 1
## 1 8
## 13 1
## 3 3
或
import numpy as np
a = np.array([1, 1, 2, 3, 5, 8, 13])
b = np.reshape(np.array([0, 1, 1, 5, 6, 0, 3, 3]), (4, 2))
a[b]
## array([[ 1, 1],
## [ 1, 8],
## [13, 1],
## [ 3, 3]])
然而,在R,由索引數組索引的矢量返回一個矢量:
a <- c(1, 1, 2, 3, 5, 8, 13)
b <- matrix(c(1, 2, 7, 4, 2, 6, 1, 4), nrow = 4)
a[b]
## [1] 1 1 13 3 1 8 1 3
是否有R中的慣用的方式來執行向量化查找保存陣列形狀?
請注意,如果a具有維度,則矩陣索引是完全不同的,索引列應用於a的變暗以返回nrow(b)向量。 – mdsumner 2014-12-05 23:54:20