创建ndarray
即 使用array函数
首先导包:import numpy as np
1.一维数组:
data1 = [1, 2.3, 4, -5]
arr = np.array(data1)
print(arr)
得到:
2.多维数组:
data2 = [[1, 2, 3], [4, 6, 7]]
arr = np.array(data2)
print(arr)
得到:
还可以使用 asarray(data)
。
array()
和 asarray()
的区别:二者都可以将结构数据转化为ndarray,但是当数据为ndarray时,array 仍会copy出一个副本,占用一个内存,而asarray不会。
3.有序数组:
data = np.arange(start, stop, step) #start是开始的元素,stop是结束的元素,不包括stop元素,step是步长,表示隔step步取一个元素。
data1 = np.arange(4);
data2 = np.arange(2, 5, 2)
print(data1) # 得到:[0, 1, 2, 3]
print(data2) # 得到:[2, 4]
获取数组维度
print(data.ndim)
,其中:
print(data1.ndim) # 为1
print(data2.ndim) # 为2
获取数组行列数
print(data.shape)
,返回(行,列)。其中:
print(data1.shape) #为(4,),不是(1, 4)的原因是一维度只返回一个数
print(data2.shape) #为(2,3),即两行三列
获取数组类型
print(data.dtype)
,其中:
print(data1.dtype); #为int32
print(data2.dtype); #为int32
其他数组
1.全0数组:
(1) print(np.zeros(10))
,即显示1行10列的全0数组
(2) print(np.zeros_like(data))
,即显示以data数组的行列数和类型为模板的全0数组。
data = [1, 2, 3]
print(np.zeros_like(data)) #得到:[0, 0, 0]
#or: data1 = np.zeros_like(data)
# print(data1)
2.全1数组:
(1) print(np.ones((2, 4)))
,即显示2行4列的全1数组
(2) print(np.ones_like(data))
,即显示以data数组的行列数和类型为模板的全1数组。
data = [1, 2, 3]
print(np.ones_like(data)) #得到:[1, 1, 1]
# or: data1 = np.ones_like(data);
# print(data1);
3.空数组:
(1) print(np.empty(2, 3, 3))
(2) print(np.empty_like(data))
,同上。均分配内存空间并产生随机值,不进行初始化。
里面的值是未初始化的垃圾值,空数组≠全0数组。
4.全数组:
(1) print(np.full((x, y), e))
,显示x行y列、值为e的数组。
(2) print(np.full_like(data, e))
,显示data模板下的值全为e的数组。
data = np.full((2, 3), 4)
print("data:\n", data)
data1 = np.full_like(data, 2)
print("data1:\n", data1)
5.单位矩阵
(1) eye(x, y)
,构造x行y列的单位矩阵。
(2) identity(x)
,构造x行x列的单位方阵。
print("eye:\n", eye(2, 3));
print("identity:\n", identity(3));
得到: