如何使用具有值索引的另一个数组获取数组中的值?
How to get values in an array using another array with the indexes of the values?
我有一个浮点数数组(大小为 9300)和另一个整数数组(大小为 2600),其索引为第一个数组。我试图根据第二个数组中的索引获取第一个数组中的值。示例:
index 1st_array
0 12.00
1 3.89
2 24.20
3 34.60
index 2nd_array
0 0
1 2
输出:
index 3nd_array
0 12.00
1 24.20
编辑:这些实际上是 numpy 数组:
a1 = np.array([12.00, 3.89, 24.20, 34.60])
a2 = np.array([0, 2])
import numpy as np
arr1 = np.array([12.00, 3.89, 24.20, 34.60])
arr2 = np.array([0, 2])
print(arr1[arr2])
打印
[12. 24.2]
如果您有两个系列 s1
和 s2
,请使用:
s1.loc[s2]
示例:
s1 = pd.Series(['a', 'b', 'c', 'd'])
s2 = pd.Series([0, 2])
s1.loc[s2]
0 a
2 c
dtype: object
对于 numpy 数组
a1[a2]
示例:
a1 = np.array(['a', 'b', 'c', 'd'])
a2 = np.array([0, 2])
a1[a2]
array(['a', 'c'], dtype='<U1')
对于数据帧:
df1.set_index('index').loc[df2['2nd_array']].reset_index()
注意。 set_index
/reset_index
仅当“索引”是列
时才需要
示例:
df1 = pd.DataFrame({'index': [0, 1, 2, 3],
'1st_array': [12.0, 3.89, 24.2, 34.6]})
df2 = pd.DataFrame({'index': [0, 1],
'2nd_array': [0, 2]})
(df1
.set_index('index')
.loc[df2['2nd_array']]
.reset_index()
)
index 1st_array
0 0 12.0
1 2 24.2
我有一个浮点数数组(大小为 9300)和另一个整数数组(大小为 2600),其索引为第一个数组。我试图根据第二个数组中的索引获取第一个数组中的值。示例:
index 1st_array
0 12.00
1 3.89
2 24.20
3 34.60
index 2nd_array
0 0
1 2
输出:
index 3nd_array
0 12.00
1 24.20
编辑:这些实际上是 numpy 数组:
a1 = np.array([12.00, 3.89, 24.20, 34.60])
a2 = np.array([0, 2])
import numpy as np
arr1 = np.array([12.00, 3.89, 24.20, 34.60])
arr2 = np.array([0, 2])
print(arr1[arr2])
打印
[12. 24.2]
如果您有两个系列 s1
和 s2
,请使用:
s1.loc[s2]
示例:
s1 = pd.Series(['a', 'b', 'c', 'd'])
s2 = pd.Series([0, 2])
s1.loc[s2]
0 a
2 c
dtype: object
对于 numpy 数组
a1[a2]
示例:
a1 = np.array(['a', 'b', 'c', 'd'])
a2 = np.array([0, 2])
a1[a2]
array(['a', 'c'], dtype='<U1')
对于数据帧:
df1.set_index('index').loc[df2['2nd_array']].reset_index()
注意。 set_index
/reset_index
仅当“索引”是列
示例:
df1 = pd.DataFrame({'index': [0, 1, 2, 3],
'1st_array': [12.0, 3.89, 24.2, 34.6]})
df2 = pd.DataFrame({'index': [0, 1],
'2nd_array': [0, 2]})
(df1
.set_index('index')
.loc[df2['2nd_array']]
.reset_index()
)
index 1st_array
0 0 12.0
1 2 24.2