越来越多的基于Python的科学和数学软件包使用NumPy数组; 虽然这些工具通常都支持Python的原生数组作为参数,但它们在处理之前会还是会将输入的数组转换为NumPy的数组,而且也通常输出为NumPy数组。换句话说,为了高效地使用当今科学/数学基于Python的工具(大部分的科学计算工具),你只知道如何使用Python的原生数组类型是不够的 - 还需要知道如何使用 NumPy 数组。
- NumPy 数组在创建时具有固定的大小,与Python的原生数组对象(可以动态增长)不同。更改ndarray的大小将创建一个新数组并删除原来的数组。
- NumPy 数组中的元素都需要具有相同的数据类型,因此在内存中的大小相同。 例外情况:Python的原生数组里包含了NumPy的对象的时候,这种情况下就允许不同大小元素的数组。
- NumPy 数组有助于对大量数据进行高级数学和其他类型的操作。通常,这些操作的执行效率更高,比使用Python原生数组的代码更少。
举例
如果上述代码中,第2行修改为:
则抛出异常:
ValueError: cannot select an axis to squeeze out which has size not equal to one
更多举例:求两个一维数组对应元素相乘
a =np.array( [1, 2, 3, 4])
b = np.array([5, 6, 7, 8])
c=a*b
则c的输出结果:
Out[16]: array([ 5, 12, 21, 32])
如果使用原生Python数组,则麻烦得多,需要使用循环语句实现。不仅如此,如果此两个数组个数是巨大值,则计算时间差异巨大!
小结
小面示例,仅是九牛之一毛。numpy数组用途大着呢......因此,选择使用Python进行大数据开发或者AI学习,对于numpy的数组了解得越多越受益!