[英]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.