python 中的 ndarray 和列表有什么区别?
what the differences between ndarray and list in python?
上周,我的老师问我们:在存储从一到一百的整数时,使用list和使用ndarray[=17=有什么区别? ].我以前从来没有用过numpy,所以我在网站上搜索了这个问题。
但是我所有的搜索结果都告诉我,它们只是尺寸不同。 Ndarray可以存储N维数据,而list存储一个。那不能让我满意。真的很简单,只是我想多了,还是没有找到合适的关键词去搜索?
我需要帮助。
有几点不同:
-您可以将元素附加到列表中,但您不能在不制作完整副本的情况下更改“numpy.ndarray”的大小。
-列表可以包含所有内容,在 numpy 数组中,所有元素必须具有相同的类型。
-在实践中,numpy 数组对于矢量函数比将函数映射到列表更快。
-我认为修改时间不是问题,但对元素的迭代才是问题。
Numpy 数组有许多与数组相关的方法('argmin'、'min'、'sort' 等)。
当我需要进行一些数学运算(求和、求平均值、数组乘法等)时,我更喜欢使用 numpy 数组;当我需要在 'items'(字符串、文件等)中进行迭代时,我更喜欢使用 list。
一个一维数组就像一个行方格纸.##
每个盒子里可以放一件东西
下图是一个二维数组的例子
二维数组有行有列
我应该改变数字。
我画图的时候把第一行复制了很多次
每行的数字可以完全不同。
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维数组的例子
Summary/Conclusion:
Python中的list
就像一个一维数组。
ndarray
是“n维数组”或“多维数组”的缩写
Python list
和 ndarray
的区别在于 ndarray 有 2 个或更多维度
上周,我的老师问我们:在存储从一到一百的整数时,使用list和使用ndarray[=17=有什么区别? ].我以前从来没有用过numpy,所以我在网站上搜索了这个问题。 但是我所有的搜索结果都告诉我,它们只是尺寸不同。 Ndarray可以存储N维数据,而list存储一个。那不能让我满意。真的很简单,只是我想多了,还是没有找到合适的关键词去搜索? 我需要帮助。
有几点不同:
-您可以将元素附加到列表中,但您不能在不制作完整副本的情况下更改“numpy.ndarray”的大小。
-列表可以包含所有内容,在 numpy 数组中,所有元素必须具有相同的类型。
-在实践中,numpy 数组对于矢量函数比将函数映射到列表更快。
-我认为修改时间不是问题,但对元素的迭代才是问题。 Numpy 数组有许多与数组相关的方法('argmin'、'min'、'sort' 等)。
当我需要进行一些数学运算(求和、求平均值、数组乘法等)时,我更喜欢使用 numpy 数组;当我需要在 'items'(字符串、文件等)中进行迭代时,我更喜欢使用 list。
一个一维数组就像一个行方格纸.##
每个盒子里可以放一件东西
下图是一个二维数组的例子
二维数组有行有列
我应该改变数字。
我画图的时候把第一行复制了很多次
每行的数字可以完全不同。
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)