ndarray的创建
在NumPy中的核心对象就是ndarray,NumPy函数库里的所有函数都是围绕ndarray展开的。
我们可以将ndarray看作是数组,类似于向量或矩阵。
比如,我们看一下以下几行代码及其运行结果
在这里,np.array(),括号里边既可以是list类型、也可以是tupe类型,而nd.array展示的结果就是一个向量或矩阵。
nd.array对维数没有限制。
但是我们这样看ndarray好像是一个画蛇添足的把戏,不就是对于列表和元组换了一个书写形式嘛,甚至感觉还更麻烦了一些。如果你这样觉得,那就大low特low了!
NumPy库最具有魅力的地方在于它提供了专门生成ndarray的函数,提高了创建ndarray的速度。
我们看以下几行代码
a = np.arange(0, 1, 0.1)
b = np.linspace(0, 1, 10)
c = np.linspace(0,1,10,endpoint=False)
d = np.logspace(0,2,5)
运行结果:
所以我们可以看到ndarray可以比较简洁地创造一些具有数学特性的数组。
那么这些NumPy具体创建数组的方法就给大家放到这里了:
1、numpy.empty
用来创造一个指定形状(shape)、数据类型(dtype)且未初始化的数组:
numpy.empty(shape, dtype = float, order = 'C')
这里的order什么意思呢~它表示(下边几个order也是这个含义)
有"C"和"F"两个选项,分别代表,行优先和列优先,在计算机内存中的存储元素的顺序。 |
2、numpy.zeros
创建指定大小的数组,数组元素用0来填充:
numpy.zeros(shape, dtype = float, order = 'C')
3、numpy.ones
创建指定形状的数组,数组元素用1来填充。
4、numpy.zeros_like
numpy.zeros_like 用于创建一个与给定数组具有相同形状的数组,数组元素以 0 来填充。
numpy.zeros 和 numpy.zeros_like 都是用于创建一个指定形状的数组,其中所有元素都是 0。
它们之间的区别在于:numpy.zeros 可以直接指定要创建的数组的形状,而 numpy.zeros_like 则是创建一个与给定数组具有相同形状的数组。
import numpy as np
# 创建一个 3x3 的二维数组
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# 创建一个与 arr 形状相同的,所有元素都为 0 的数组
zeros_arr = np.zeros_like(arr)
print(zeros_arr)
5、numpy.ones_like
numpy.ones_like 用于创建一个与给定数组具有相同形状的数组,数组元素以 1 来填充。
numpy.ones 和 numpy.ones_like 都是用于创建一个指定形状的数组,其中所有元素都是 1。
它们之间的区别在于:numpy.ones 可以直接指定要创建的数组的形状,而 numpy.ones_like 则是创建一个与给定数组具有相同形状的数组。
6、np.full(4,np,pi):
创建长度为4,值全部为pi的矩阵
7、np.eye(3):
创建3*3的单位阵