0-1 numpy 复习

这里写自定义目录标题

0-1 numpy 复习


```python
```import numpy as np

# 0-1 array的创建
array1 = np.array([[1,2,3], [4,5,6]])
print(array1)
# 矩阵的维度
print("number of dim:", array1.ndim)
# 矩阵的形状
print("shape:", array1.shape)
# 矩阵的大小
print('size:', array1.size)
# 列表创建
a = np.array([2, 3, 4])
print(a)
# 数据类型的设定 int float
b = np.array([2, 3, 4], dtype=int)
print(b)
print(b.dtype)
# 矩阵的创建
c = np.array([[1,2,3], [4,5,6]])
print(c)
# 全为零矩阵的创建
zero = np.zeros((3,4), dtype=np.int16)
print(zero)
# 创建空矩阵
empty = np.empty((3,4), dtype = float)
print(empty)
# 生成有序的数列或矩阵
order_list = np.arange(10, 20, 2)
print(order_list)
# 矩阵
order_array = np.arange(12).reshape((3,4))
print(order_array)
# 生成线段
line_seg = np.linspace(1, 10, 6).reshape((2,3))
print(line_seg)

# 0-2 numpy 的计算
# 普通运算
a = np.array([10, 20, 30, 40])
b = np.arange(4)
print(a)
print(b)
c = a * b
d = a + b
e = a - b
f = a**2
sin = 10*np.sin(a)
print(c)
print(d)
print(e)
print(f)
print(sin)
# 比较
print(b<3)
print(b == 3)
# 矩阵运算
A = np.array([[1,2,3], [4,5,6]])
B = np.arange(6).reshape((3,2))
print(A)
print(B)
c_dot = np.dot(A,B)
c_dot_2 = A.dot(B)
print(c_dot)
print(c_dot_2)
# 创建随机的矩阵
ran_array = np.random.random((2, 4))
print(ran_array)
print('sum:',np.sum(ran_array))
print('min:',np.min(ran_array))
print('max:',np.max(ran_array))
# axis 1:row(行) 0:col(列)
print('sum of row: ', np.sum(ran_array, axis = 1))
A = np.arange(2,14).reshape((3, 4))
print(A)
# 求最值索引
print(np.argmin(A))
print(np.argmax(A))
# 求平均值
print(np.mean(A))
print(np.average(A))
# 累和
print(np.cumsum(A))
# 累差
print(np.diff(A))
# 找出非0的数
print(np.nonzero(A)) # 输出非0对应的行和列
# 排序
c = np.arange(14, 2, -1).reshape((3,4))
print('c is:', c)
print(np.sort(c))
# 转置
print(A)
print(np.transpose(A))
print((A.T).dot(A))
# clip  A, 5, 9 <5=5 >9=9
print(np.clip(A, 5, 9))

# 0-3 numpy的索引
# 一维
A = np.arange(3,15)
print(A)
print(A[0])
# 二维
a = np.arange(3,15).reshape((3,4))
print(a)
print(a[1][1])
# 局部显示
print(a[2,:]) # 第二行
print(a[:,2]) # 第二列
print(a[1, 1:3]) #第一行中第一列到第三列,但不会包括第三列的值
# 遍历(for)
# 行遍历
for row in a:
    print('row is:', row)
# 列遍历
for col in a.T:
    print('col is: ', col)
# flatten
print(a.flatten())
for item in a.flat:
    print(item )

# 0-4 array的合并
a = np.array([1, 1, 1])
b = np.array([2, 2, 2])
# vertical stack 上下合并
c = np.vstack((a, b))
print(c)
print(c.shape)
print(a.shape)
# horizonsl stack 左右合并
d = np.hstack((a, b))
print(d)
print(d.shape)
# 不能直接将序列转置
print(a.T)  # 输出还是[]1, 1, 1]
# 加一个新维度,可以实现转置
print(a[np.newaxis,:])
print(a[:, np.newaxis])
print(a[np.newaxis,:].shape)
print(a[:, np.newaxis].shape)
# 设置维度方向上的合并
A = np.array([[5, 5, 5], [6, 6, 6]])
B = np.array([[3, 3, 3], [4, 4, 4]])
new_merge = np.concatenate((A, B), axis = 1)
print(new_merge)

# 0-5 array的分割
a = np.arange(12).reshape((3, 4))
b = np.arange(12).reshape((4, 3))
print(a)
# 横向分割(横向断开,如[1,1,2,2]分为a1=[1,1]和a2=[2,2], 2代表分成两部分
print(np.split(a, 2, axis=1))
# 纵向分割(纵向断开),分成两部分
print(np.split(b, 2, axis=0))
# 不等量分割 如(3, 4)的分割成(2,4)和(4,)
print(np.array_split(a, 2, axis=0))
# 新分割方法,但不可进行不等量分割
# 横向分割
print(np.vsplit(b, 2))
# 横向分割
print(np.hsplit(a, 2))
print(np.hsplit(b, 3))

# 0-6 array的普通copy和deep_copy
a = np.arange(4)
print(a)
# copy
b = a
print(b)
a[0] = 33
print(a)
print(b) # b的值也会随着a的值的改变而改变
print(a is b)  # True
# deep copy
c = a.copy()
print(c)
a[0] = 10
print(a)
print(b)
print(c)


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值