簡體   English   中英

以較短的方式進行轉換

[英]Transforming in a shorter way

有沒有一種精巧的方法來縮短這部分代碼:

adhesiveCoord = array(adhesiveCoord)
adhesiveCoord = adhesiveCoord[:,0]
adhesiveCoord = list(map(int, adhesiveCoord))

使用Python 3.6和Numpy

感謝幫助。

是的,這是列表理解的好地方。

您可以執行以下操作:

adhesiveCoord = [int(x[0]) for x in adhesiveCoord]

如果我對您的情況理解正確,則應該將每一行的第一列作為一個int轉換為列表。 =)


只是另外一個小提示,這樣做不是標准的。 (同樣,如果我理解這里的“數組”是什么)

from numpy import array

adhesiveCoord = array(adhesiveCoord)

但是要做的更多標准

import numpy as np
adhesiveCoord = np.array(adhesiveCoord)

原因之一是讓每個人都可以看到它是哪種數組。 這樣,我們所有人都可以立即了解它的行為方式

np.array(adhesiveCoord)[:,0].astype(int)

或者可能

np.array(adhesiveCoord, dtype=int)

取決於第一欄中的內容。

np.array可以將所有有效字符串轉換為整數,而無需使用python循環或映射。

In [213]: alist = [['a','1'],['b','2'],['c','3']]
In [214]: np.array(alist)
Out[214]: 
array([['a', '1'],
       ['b', '2'],
       ['c', '3']], dtype='<U1')
In [215]: np.array(alist)[:,1]
Out[215]: array(['1', '2', '3'], dtype='<U1')
In [216]: np.array(alist)[:,1].astype(int)
Out[216]: array([1, 2, 3])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM