【问题标题】:How to construct a ndarray from a numpy array? python如何从 numpy 数组构造 ndarray? Python
【发布时间】:2014-02-01 00:18:06
【问题描述】:

我似乎无法在 numpy 中将其转换为 ndarray,我已经阅读了 http://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.html,但它没有告诉我如何将如下所示的输入数据转换为 ndarray

如何从 numpy 数组或整数列表的列表构造 ndarray? *ndarray 和数组有什么区别?* 我可以只使用 array 类型对吗?

我有一个这样的整数计数列表

[[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

如何使用我所拥有的整数计数列表创建一个 np.ndarray? TypeError 指的是什么整数?

【问题讨论】:

  • ndarray和array没有区别。

标签: python arrays numpy multidimensional-array


【解决方案1】:

虽然接受的响应是正确的,但这并没有帮助我实际创建一个一维数组数组。

由于此主题是 Google 的第一个答案,因此我发布了我的工作,即使它不是优雅的解决方案(请不要犹豫向我指出一个):

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

【讨论】:

  • 还有另一种方法可以多维度,可以使用numpy.expand_dims,例如:np.expand_dims(initial_array, axis=0)
  • 那么为什么np.ndarray(x) 不起作用? np.ndarray 和 np.array 的第一个参数都是 shape。
【解决方案2】:

ndarray一个 NumPy 数组。

>>> x = np.array([1, 2, 3])
>>> type(x)
<type 'numpy.ndarray'>

np.ndarraynp.array 的区别在于前者是实际类型,而后者是灵活的简写函数,用于从其他格式的数据构造数组。 TypeErrornp.array 参数用于np.ndarray,它采用完全不同的参数(请参阅文档字符串)。

【讨论】:

    猜你喜欢
    • 2015-06-03
    • 1970-01-01
    • 2011-05-02
    • 2017-04-01
    • 2016-02-10
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    相关资源
    最近更新 更多