繁体   English   中英

python中的ndarray和list有什么区别?

[英]what the differences between ndarray and list in python?

上周,我的老师问我们:在存储从 1 到 100 的整数时,使用list和使用ndarray有什么区别。 我以前从未使用过 numpy,所以我在网站上搜索了这个问题。 但是我所有的搜索结果都告诉我,它们只是有尺寸差异。 Ndarray可以存储 N 维数据,而list存储一个。 那不满足我。 是不是真的很简单,只是我想多了,还是没有找到合适的关键字来搜索? 我需要帮助。

有几个区别:

- 您可以将 append 元素添加到列表中,但如果不制作完整副本,则无法更改“numpy.ndarray”的大小。

-列表可以包含所有内容,在 numpy arrays 中,所有元素必须具有相同的类型。

- 在实践中,numpy arrays 对于矢量函数比映射函数到列表更快。

- 我认为修改时间不是问题,但对元素的迭代是。 Numpy arrays 有许多与数组相关的方法(“argmin”、“min”、“sort”等)。

当我需要进行一些数学运算(求和、平均、数组乘法等)并列出何时需要迭代“项目”(字符串、文件等)时,我更喜欢使用 numpy arrays。

一维数组就像排方格纸。##

在此处输入图像描述

您可以在每个盒子内存放一件东西

一维阵列的第二个示例的照片

下图是一个二维数组的例子

二维阵列

二维 arrays 有行有列

我应该改变数字。
当我绘制图片时,我只是将第一行复制了很多次。
每行的数字可以完全不同。

import numpy as np

lol = [[1, 2, 3], [4, 5, 6]]
# `lol` is a list of lists

arr_har = np.array(lol, np.int32)

print(type(arr_har)) # <class 'numpy.ndarray'>

print("BEFORE:")
print(arr_har)

# change the value in row 0 and column 2.
arr_har[0][2] = 999

print("\n\nAFTER arr_har[0][2] = 999:")
print(arr_har)

下图是一个3维数组的例子

三维数组

总结/结论:

Python 中的list就像一维数组。

ndarray是“n维数组”或“多维数组”的缩写

ndarray list和 ndarray 之间的区别在于 ndarray 有 2 个或更多维度

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM