我用一些迭代来构建一个类。数据以数组形式显示,不使用numpy对象。在我的代码中,我经常使用.append
来创建另一个数组。在某个时候,我把一个大数组1000x2000改为数字阵列. 现在我有一个又一个错误。我开始将所有数组转换成ndarray,但是像.append
这样的注释不再起作用。我开始在指向行、列或单元格时遇到问题。必须重新生成所有代码。在
我试图用谷歌搜索一个问题的答案:“与普通数组相比,使用ndarray有什么好处?我找不到一个合理的答案。”。你能写下我什么时候开始使用ndarray吗?如果在你的练习中你是同时使用它们还是只坚持一个。在
很抱歉,如果这个问题是一个初学者的水平,但我是新的python,只是尝试从Matlab和想了解什么是利弊。谢谢
array.array
可以动态更改大小。如果您从某个源收集数据,最好使用array.array
。但是array.array
只是一维的,没有计算函数来处理它。所以,当你想用你的数据做一些计算时,把它转换成numpy.ndarray
,并在numpy中使用函数。在numpy.frombuffer
可以创建一个与array.array
对象共享同一数据缓冲区的{下面是一个演示:
使用NumPy数组至少有两个主要原因:
是的,您不能简单地将列表转换为NumPy数组并期望代码继续工作。方法不同,布尔语义不同。为了获得最佳性能,甚至可能需要更改算法。在
但是,如果您正在寻找一个Python替代Matlab,您肯定会找到NumPy的用途。值得学习。在
NumPy和Python数组共享高效存储在内存中的特性。在
NumPy数组可以加在一起,乘以一个数,你可以计算,比方说,在一个函数调用中它们所有值的正弦值,等等。正如HYRY指出的,它们也可以有多个维度。对于Python数组,不能这样做。在
另一方面,Python数组确实可以附加到。注意,NumPy数组可以连接在一起(
hstack()
,vstack()
,…)。也就是说,NumPy数组通常意味着有固定数量的元素。在通常,首先迭代地构建一个值列表(或Python数组),然后将其转换为NumPy数组(使用
numpy.array()
,或者更有效地使用numpy.frombuffer()
,正如HYRY所提到的):这使得对数组(或矩阵)的数学运算非常方便地执行(复杂操作的简单语法)。或者,numpy.fromiter()
可用于从迭代器构造数组。或者loadtxt()
从文本文件构造它。在相关问题 更多 >
编程相关推荐