创建数组

1、使用array创建数组

arr = np.array([1, 2, 3, 4])
print('通过list转换而来')
print("array", arr, arr.dtype, arr.ndim, arr.shape)

print('通过 list of list 创建')
mat_arr = np.array([
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
])
print(mat_arr, mat_arr.ndim, mat_arr.dtype, mat_arr.shape)

2、使用arrage创建数组

arr = np.arange(10)
print('通过简单生成器按序生成1')
print("[0, 9]: ", arr, arr.dtype, arr.ndim, arr.shape)

arr = np.arange(0, 9)
print('通过简单生成器按序生成2')
print("[0, 8]: ", arr, arr.dtype)

print('通过简单生成器按序生成3')
arr = np.arange(0, 9, 2, dtype=np.int8)
print("[0 .. 8]: ", arr, arr.dtype)

3、linspace、logspace创建数组

print('等差生成器')
arr = np.linspace(0, 9, num=5, endpoint=True, dtype=np.int)
print("[0 .. 10]: ", arr, arr.dtype)

print('等比生成器')
arr = np.logspace(0, 9, num=10, base=2, dtype=np.int)
print("[0, 9]: ", arr, arr.dtype)

4、创建特殊数组

print('初始化为0')
mat_zero = np.zeros((2, 2), dtype=np.int)
print(mat_zero, mat_zero.ndim, mat_zero.dtype, mat_zero.shape)

print('初始化为1')
mat_one = np.ones((2, 2), dtype=np.int)
print(mat_one, mat_one.ndim, mat_one.dtype, mat_one.shape)

print('对角线为1')
mat_eye = np.eye(3, 4, dtype=np.int)
print(mat_eye, mat_eye.ndim, mat_eye.dtype, mat_eye.shape)

print('对角线为1的矩形')
mat_idt = np.identity(3, dtype=np.int)
print(mat_idt, mat_idt.ndim, mat_idt.dtype, mat_idt.shape)

5、empty创建数组

print('未初始化')
mat_empty = np.empty((2, 2), dtype=np.int)
print(mat_empty, mat_empty.ndim, mat_empty.dtype, mat_empty.shape)

6、生成随机矩阵

# low~high之间,形状4行5列的随机数据
print('随机矩阵1')
d1 = np.random.randint(10, 20, (4, 5))  
print(d1, d1.dtype, d1.ndim, d1.shape)

# 0~1之间生成float随机数据,3行4列
print('随机矩阵2')
d2 = np.random.rand(3, 4)
print(d2, d2.dtype, d2.ndim, d2.shape)

# 0~1之间生成符合正态分布的数组
print('随机矩阵3')
d3 = np.random.randn(3, 5)
print(d3, d3.dtype, d3.ndim, d3.shape) 
# loc: 分布中心  scale: 标准差   size: 形状
print('从指定的正态分布中随机抽取样本')
arr = np.random.normal(20, 0.6, (3, 2))


#  low~high之间,形状3行2列的均匀数据
print('随机矩阵4')
d4 = np.random.uniform(20, 60, (3, 2))

7、使用fromfunction创建数组

dt = np.fromfunction(lambda i, j: i + j, (4, 5), dtype=int)
print(dt, dt.dtype, dt.ndim, dt.shape)

8、生成时间序列

print('时间序列')
df = pd.date_range("1996-10-16", "2019-10-25", periods=None, freq='Y')
print(len(df))
print(df[0])
print(df)