[英]How to construct a ndarray from a numpy array? python
我似乎無法在ndarray
中將其轉換為 ndarray,我已閱讀http://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.html但它沒有告訴我如何可以將我的輸入數據轉換為ndarray
,如下所示。
如何從 numpy 數組或 integer 列表的列表構造一個 ndarray? * ndarray 和數組有什么區別? * 我可以只使用array
類型嗎?
我有一個這樣的 integer 計數列表
[[1, 2, 4, 1, 5],
[6, 0, 0, 0, 2],
[0, 0, 0, 1, 0]]
我設法使用此代碼創建一個np.array
,如http://docs.scipy.org/doc/numpy/reference/generated/numpy.array.html#numpy.array中所示
import numpy as np
x = [[1, 2, 4, 1, 5],
[6, 0, 0, 0, 2],
[0, 0, 0, 1, 0]]
print np.array(x)
[出去]:
[[1 2 4 1 5]
[6 0 0 0 2]
[0 0 0 1 0]]
但是我不能用這段代碼把它變成np.ndarray
:
import numpy as np
x = [[1, 2, 4, 1, 5],
[6, 0, 0, 0, 2],
[0, 0, 0, 1, 0]]
print np.ndarray(x)
我收到一個錯誤:
Traceback (most recent call last):
File "/home/alvas/workspace/sklearntut/test.py", line 7, in <module>
print np.ndarray(x)
TypeError: an integer is required
如何創建一個包含 integer 計數列表的 np.ndarray? TypeError 在說什么 integer?
ndarray
是一個NumPy數組。
>>> x = np.array([1, 2, 3])
>>> type(x)
<type 'numpy.ndarray'>
np.ndarray
和np.array
之間的區別在於前者是實際類型,而后者是靈活的簡寫函數,用於從其他格式的數據構造數組。 該TypeError
來你使用的np.array
參數np.ndarray
,這需要完全不同的參數(見文檔字符串)。
雖然接受的響應是正確的,但這並沒有幫助我實際創建一維數組陣列。
由於這個帖子是谷歌的第一個答案,我發布我的工作,即使它不是優雅的解決方案(請不要猶豫,向我指出一個):
import numpy as np
# Create example array
initial_array = np.ones(shape = (2,2))
# Create array of arrays
array_of_arrays = np.ndarray(shape = (1,), dtype = "object")
array_of_arrays[0] = initial_array
請注意, array_of_arrays
在這種情況下是可變的,即更改initial_array
自動更改array_of_arrays
。
我會將接受的解決方案與固定代碼結合起來。 正如在公認的解決方案中所說,一個ndarray
是一個 NumPy array
。
這實質上意味着在從列表列表、元組列表、列表元組構建 ndarray 時,您應該使用np.array
...
固定代碼片段:
import numpy as np
x = [[1, 2, 4, 1, 5],
[6, 0, 0, 0, 2],
[0, 0, 0, 1, 0]]
# The difference: we call np.array
print np.array(x)
希望這會幫助其他人,因為這是第一個谷歌答案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.