从txt文件中读取和排序矢量

时间:2018-05-21 15:03:00

标签: python arrays python-3.x list numpy

是一个初学者问题,但我没有成功地从错误中走出来。 我有一个文本文件,其值类似于:[ 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

3 个答案:

答案 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]