python9.12作业——numpy简单操作

一、数组拆分:

矩阵输出:

import numpy as np

c = np.arange(1, 13).reshape(6, 2)
print(c)

1. vsplit沿着垂直轴分割

import numpy as np

c = np.arange(1, 13).reshape(6, 2)

print(np.vsplit(c, 3))

2. 水平拆分:numpy.hsplit

import numpy as np

c = np.arange(1, 13).reshape(6, 2)

# print(np.vsplit(c, 3))
d = c.T
np.hsplit(d, 3)
print(d)

3.numpy.dsplit(将数组拆分为多个子数组):

import numpy as np

a = np.array([[11, 12, 13], [14, 15, 16], [17, 18, 19]])
b = np.array([[21, 22, 23], [24, 25, 26], [27, 28, 29]])
e = np.dstack((a, b))

print(e)

 两列单独输出后可以合二为一:

import numpy as np

a = np.array([[11, 12, 13], [14, 15, 16], [17, 18, 19]])
b = np.array([[21, 22, 23], [24, 25, 26], [27, 28, 29]])
e = np.dstack((a, b))
print(np.dsplit(e, 2))

二、numpy基本加减和取行操作:

python的广播机制:

import numpy as np

a = np.array([1, 1, 1, 1])
b = np.array([[1], [1], [1], [1]])
print(a + b)

 

 numpy提取某行(列)或某几行(列)

1.取W的第一列(返回的是一维数组):

import numpy as np

W = np.array([[1, 1, 1], [2, 2, 2]])
print(W[:, 1])

2.取W第一行,返回一维数组:

import numpy as np

W = np.array([[1, 1, 1], [2, 2, 2]])
print(W[1])

 3.用array[5,5]这样的一维数组直接可以把W矩阵的第1列替换(维度符合即可):

import numpy as np

W = np.array([[1, 1, 1], [2, 2, 2]])
W[:, 1] = np.array([5, 5])
print(W)

 三、矩阵删除、插入、尾部添加操作(delete,insert,append)

delete删除指定的行列:

import numpy as np

matrix = [
    [1, 2, 3, 4],
    [5, 6, 7, 8],
    [9, 10, 11, 12]
]
p1 = np.delete(matrix, 1, 0)
print('------p1------\n', p1)
#  删除第二行

import numpy as np

matrix = [
    [1, 2, 3, 4],
    [5, 6, 7, 8],
    [9, 10, 11, 12]
]
p2 = np.delete(matrix, 1, 1)
print('------p2------\n', p2)
#  删除第二行与第二列

 

 

insert已有矩阵中插入矩阵:

import numpy as np

matrix = [
    [1, 2, 3, 4],
    [5, 6, 7, 8],
    [9, 10, 11, 12]
]
q1 = np.insert(matrix, 1, [1, 1, 1, 1], 0)
print('------q1------\n', q1)
#  在第二行插入指定矩阵

 

append在尾部添加指定行:
import numpy as np

matrix = [
    [1, 2, 3, 4],
    [5, 6, 7, 8],
    [9, 10, 11, 12]
]
m1 = np.append(matrix, [[1, 1, 1, 1]], axis=0)
print('------m1------\n', m1)
#  在尾部添加指定行

 数组抽取:

import numpy as np

a1 = np.random.choice(10, 4)  # 从0~10中随机选择4个数组成一维数组
print(a1)

 从给定list中随机选择4个数组成一维数组:

import numpy as np

# 从给定list中随机选择4个数组成一维数组
a2 = np.random.choice([0, 1, 2, 3, 4, 8, 7], 4)
print(a2)

 上述均有重复,将replace设置为False,即可按要求没有重复的选取:

import numpy as np

# 上述均有重复,将replace设置为False,即可按要求没有重复的选取
a4 = np.random.choice([0, 1, 2, 3, 4, 5, 6], 5, replace=False)
print(a4)

给出选取概率p,注意p的维度和a的维度一致,并且p中概率和为1:
import numpy as np

#  给出选取概率p,注意p的维度和a的维度一致,并且p中概率和为1
a5 = np.random.choice(np.array([0, 1, 2, 3, 4, 5, 6]), 5, p=[0.02, 0.02, 0.01, 0.02, 0.02, 0.01, 0.9])
print(a5)

import numpy as np

a = np.array([[1, 1, 1], [2, 2, 2], [0, 3, 6]])
b1 = np.argmax(a)  # 将数组a拉平,最大值索引为9(初始索引为0)
print(b1)

按列选取最大值的索引:

import numpy as np

a = np.array([[1, 1, 1], [2, 2, 2], [0, 3, 6]])
b2 = np.argmax(a, axis=0)  # 按列选取最大值的索引
print(b2)

 星号作用:


numpy.linspace(start, shop, num==50, endpoint=True, retstep=False, dtype=None)
在指定间隔start到stop内返回均匀间隔的数组。
返回num均匀分布的样本,在[start, stop],默认生成50个数据
endpoint, 如果是真,则一定包括stop,如果为False,一定不会有stop
retstep,显示步长信息

import numpy as np

y1 = np.linspace(-10.0, 10.0)  # 默认生成50个数据
y2 = np.linspace(1, 10, 10)  # 生成10个数据,包括首尾
y3 = np.linspace(1, 10, 10, endpoint=False)  # 不包括尾部数据
y4 = np.linspace(1, 10, 6, retstep=True)  # 将步长与结果的数组放入一个list
print(y1)

 拉平操作:

import numpy as np

x = np.array([[1, 2, 3], [4, 5, 6], [1, 2, 3]])
x.flatten()  # 拉平
print(x.flatten())

 

 

 计算元素乘积:

import numpy as np

# 计算元素乘积
x = np.array([[1, 2, 3], [2, 3, 4]])
np.prod(x)
print(np.prod(x))

 通过axis计算指定轴的乘积:

import numpy as np


x = np.array([[1, 2, 3], [2, 3, 4]])
print(np.prod(x, axis=1))

 把矩阵大于或小于N的元素置M:

import numpy as np

x = np.array([[1, 2, 3], [-3, 2, 4], [5, -2, 9]])
y1 = np.maximum(0, x)  # 把小于0的元素置0,比改变x的值
print(y1)

 

import numpy as np

x = np.array([[1, 2, 3], [-3, 2, 4], [5, -2, 9]])
y2 = np.minimum(0, x)  # 把大于0的元素置0,不改变x的值
print(y2)

 

import numpy as np

x = np.array([[1, 2, 3], [-3, 2, 4], [5, -2, 9]])
x1 = x.copy()
x1[x1 < 0] = 0  # 把小于0的元素置0,改变x1的值
print(x1)

 

import numpy as np

x = np.array([[1, 2, 3], [-3, 2, 4], [5, -2, 9]])
x2 = x.copy()
x2[x2 > 0] = 0  # 把大于0的元素置0,改变x2的值
print(x2)

 numpy中的矩阵copy问题:

import numpy as np

x = np.array([[1, 2, 3], [-3, 2, 4], [5, -2, 9]])
x1 = x.copy()  # copy(),开辟新地址
x1[x1 > 0] = 0
print(x1)

未完待续......

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值