是一个初学者问题,但我没有成功地从错误中走出来。
我有一个文本文件,其值类似于:[ 2 3 4 5 1]
和另一个向量,我写下我想重新排序第一个向量的顺序
因此,如果订单向量为[ 5 3 2 1 4 ]
第一个向量将变为[ 1 4 3 2 5 ]
。
我的想法是使用np.loadtxt导入file.txt而不是:
for i in range (5):
a=int('order[i]')
b = a
c = suono[b]
suono2.write[i] = c
suono2.save(c)
emp = ""
suono2.save(emp)
suono2.close
答案 0 :(得分:2)
如果您希望使用public class MyService extends Service {
private LocationListener listener;
private LocationManager locationManager;
private static final String TAG = "MyService";
private FusedLocationProviderClient mFusedLocationProviderClient;
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
@SuppressLint("MissingPermission")
@Override
public void onCreate() {
Log.d(TAG, "getDeviceLocation: getting the devices current location");
mFusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(this);
try{
final Task location = mFusedLocationProviderClient.getLastLocation();
location.addOnCompleteListener(new OnCompleteListener() {
@Override
public void onComplete(@NonNull Task task) {
if(task.isSuccessful()){
Log.d(TAG, "onComplete: found location!");
Location currentLocation = (Location) task.getResult();
Intent intent = new Intent("location");
intent.putExtra("latitude", currentLocation.getLatitude());
intent.putExtra("longitude", currentLocation.getLongitude());
sendBroadcast(intent);
}else{
Log.d(TAG, "onComplete: current location is null");
}
}
});
}catch (SecurityException e){
Log.e(TAG, "getDeviceLocation: SecurityException: " + e.getMessage() );
}
}
}
,如果您只使用数字数组,那么这不是错误的想法,那么您可以使用简单的索引。
你需要小心减去一个因为索引从0开始。这似乎是你错误的原因。
numpy
答案 1 :(得分:1)
我不确定你是否必须使用numpy
。
使用裸python:只需使用列表解析重建列表,迭代"命令" list(减1,因为python列表从0开始):
lst = [ 2, 3, 4, 5, 1]
order = [ 5, 3, 2, 1, 4 ]
result = [lst[i-1] for i in order]
print(result)
结果:
[1, 4, 3, 2, 5]
答案 2 :(得分:0)
您可以使用 getitem
mylist = range(10)
indexes= [1,3,5]
print(list(map(l.__getitem__, indexes)))
在Python 3中
>>> mylist = range(10)
>>> indexes= [1,3,5]
>>> print(list(map(l.__getitem__, indexes)))
[1, 3, 5]