2024-05-23 14:46:11 发布
网友
比如说我有一个连续剧
mySeries = pd.Series(range(1, 100, 1)) myArray = np.array([[3, 10],[6, 9]])
如何使用myArray中的值作为索引来选择mySeries?你知道吗
myArray
mySeries
我希望得到的数组是np.array([[4,11],[7, 10]])。你知道吗
np.array([[4,11],[7, 10]])
例如,myArray中的(1,1)元素是3,因此我希望结果数组中的(1,1)元素是mySeries中的第3个元素,即4。你知道吗
这里有一个我认为稍微干净一点的替代方法:
>>> newArray = mySeries[myArray.flatten()].values >>> newArray.shape = myArray.shape >>> newArray array([[ 4, 11], [ 7, 10]], dtype=int64)
resultArray = np.empty(shape=len(myArray), dtype=np.ndarray) for i in range(len(myArray)): row = np.empty(shape=len(myArray[i])) for k in range(len(myArray[i])): v = mySeries[myArray[i,k]] row[k] = v resultArray[i] = row
这是我的解决方案,首先将2dim数组展平为1dim,然后恢复原始形状。你知道吗
import pandas as pd import numpy as np mySeries = pd.Series(range(1, 100, 1)) myArray = np.array([[3, 10],[6, 9]]) flatArray = np.asarray(mySeries[myArray.ravel()]) resultArray = flatArray.reshape(myArray.shape) # Output results print(resultArray)
输出:
[[ 4 11] [ 7 10]]
这里有一个我认为稍微干净一点的替代方法:
这是我的解决方案,首先将2dim数组展平为1dim,然后恢复原始形状。你知道吗
输出:
相关问题 更多 >
编程相关推荐