簡體   English   中英

如何從 numpy 數組構造一個 ndarray? python

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

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