首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 ><class ' numpy.ndarray '>和numpy.ndarray有什么区别?

<class ' numpy.ndarray '>和numpy.ndarray有什么区别?
EN

Stack Overflow用户
提问于 2022-03-16 22:37:37
回答 2查看 458关注 0票数 0

我一直在使用numpy数组进行一些计算,并得出了以下问题:

<class 'numpy.ndarray'>numpy.ndarray

我注意到以下操作仅适用于<class 'numpy.ndarray'>(arrray == 1).sum()

为什么是这样?

EN

回答 2

Stack Overflow用户

发布于 2022-03-16 22:42:26

没什么区别,他们是一样的。

numpy.ndarray是numpy数组的实际类型;<class 'numpy.ndarray'>numpy.ndarray的字符串表示形式。

代码语言:javascript
运行
复制
>>> import numpy as np
>>> a = np.array([1, 2, 3])
array([1, 2, 3])

>>> print(type(a) == np.ndarray)
True

>>> np.ndarray
<class 'numpy.ndarray'>

>>> print(type(a))
<class 'numpy.ndarray'>

>>> str(type(a))
"<class 'numpy.ndarray'>"

>>> repr(type(a))
"<class 'numpy.ndarray'>"

Python解释器,如IPython和IPython(实际上下面是相同的东西)将修剪<class '...' >部件,并且只在输入类型into解释器时显示类型本身,例如,

代码语言:javascript
运行
复制
$ ipython
Python 3.9.9 (main, Nov 21 2021, 03:23:44) 
Type 'copyright', 'credits' or 'license' for more information
IPython 8.1.1 -- An enhanced Interactive Python. Type '?' for help.

In [1]: import numpy as np

In [2]: np.ndarray
Out[2]: numpy.ndarray

...versus python (内置解释器):

代码语言:javascript
运行
复制
$ python3
Python 3.9.9 (main, Nov 21 2021, 03:23:44) 
[Clang 13.0.0 (clang-1300.0.29.3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
>>> np.ndarray
<class 'numpy.ndarray'>

...but --它们是完全相同的类型。

票数 1
EN

Stack Overflow用户

发布于 2022-03-17 00:43:11

我想知道您是否混淆了numpy数组和python列表。我/我们经常谈论numpy数组,实际上是一个类/类型np.ndarray的对象。

代码语言:javascript
运行
复制
In [144]: a = [1, 2, 3]         # a list
In [145]: b = np.array(a)       # an array
In [146]: type(a), type(b)
Out[146]: (list, numpy.ndarray)

表达式适用于数组,但不适用于列表:

代码语言:javascript
运行
复制
In [147]: (b == 1).sum()
Out[147]: 1
In [148]: (a == 1).sum()
Traceback (most recent call last):
  Input In [148] in <module>
    (a == 1).sum()
AttributeError: 'bool' object has no attribute 'sum'

In [149]: b == 1
Out[149]: array([ True, False, False])
In [150]: a == 1
Out[150]: False

请注意,我使用b创建了np.array()。有一个np.ndarray函数,但我们通常不使用它--它是我们大多数人都不需要的低级创建者。有用的起始页:

https://numpy.org/doc/1.22/user/basics.creation.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71505039

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档