pythonではlistとarrayが互いに変換されます.
1841 ワード
arrayをlistに変換するのは簡単です.以下のようにします.
リストを配列に変換します.
リストには異なるタイプの要素が格納されるため、配列に変換する際に変換が間違っていないことを保証するために、タイプが一致しているかどうかを確認し、数字があり、文字のあるリストがarrayに変換されると文字配列になります.
Listオブジェクトの一般的な方法は、次のとおりです.
リストをarrayにすばやく変換する関数について説明します.コードはTSN_から来ています.ECCV 2016、以下の通り.
このメソッドの各要素はarrayですが、オブジェクト全体がarray listであり、caffeネットワークに送られて予測するにはarray of arrayに変換します.原理は、空間を申請してarrayリストの各要素を1つずつコピーすることです.
使用するときに便利です.以下の画像の処理です.
#array to list
import numpy as np #array , , , 。
#matrix=[0 for i in range(4)] # list object, list
matrix_array=np.random.randint(0,3,(2,3))
#
#array = np.empty((5, 4), dtype=int) #
matrix_list = matrix_array.tolist()
リストを配列に変換します.
リストには異なるタイプの要素が格納されるため、配列に変換する際に変換が間違っていないことを保証するために、タイプが一致しているかどうかを確認し、数字があり、文字のあるリストがarrayに変換されると文字配列になります.
import numpy as np
# define list
array = np.asarray(list)
#the second method
array = np.array(list, dtype = int)
Listオブジェクトの一般的な方法は、次のとおりです.
list=[1,2,3,4,5] #list [] ,tuple ()
list.insert(1, 'content') #
list.pop() #
list.pop(i) # ,i 0
list[-1] #
リストをarrayにすばやく変換する関数について説明します.コードはTSN_から来ています.ECCV 2016、以下の通り.
def fast_list2arr(data, offset=None, dtype=None):
"""
Convert a list of numpy arrays with the same size to a large numpy array.
This is way more efficient than directly using numpy.array()
See
https://github.com/obspy/obspy/wiki/Known-Python-Issues
:param data: [numpy.array]
:param offset: array to be subtracted from the each array.
:param dtype: data type
:return: numpy.array
"""
num = len(data)
out_data = np.empty((num,)+data[0].shape, dtype=dtype if dtype else data[0].dtype)
for i in xrange(num):
out_data[i] = data[i] - offset if offset else data[i]
return out_data
このメソッドの各要素はarrayですが、オブジェクト全体がarray listであり、caffeネットワークに送られて予測するにはarray of arrayに変換します.原理は、空間を申請してarrayリストの各要素を1つずつコピーすることです.
使用するときに便利です.以下の画像の処理です.
frame = fast_list2arr([cv2.resize(x, frame_size) for x in frame])