【Python】第六章(numpy)综合练习

这篇博客深入介绍了NumPy库的基本使用,包括创建数组、操作数组、矩阵运算、随机数生成以及数据处理等方面,展示了其在数组操作中的强大功能。通过实例演示了如何进行切片、索引、排序以及条件判断等操作,对于理解和应用NumPy非常有帮助。
部署运行你感兴趣的模型镜像

import numpy as np
# 1:
arr = np.array(range(32)).reshape(8, 4)
print(arr)

# 2:
arr2 = np.linspace(1, 2, 3)
print(arr2)

# 3:
arr3 = np.identity(9)  # 9*9的方阵
arr31 = np.eye(9)
print(arr3)

# 4:
arr4 = np.zeros(3)
print(arr4)

# 5:
arr5 = np.random.randint(1, 10, (2, 2))
print(arr5)

 

import numpy as np
arr = np.arange(10)
# 1:
print(arr[1], arr[2])

# 2:
arr[4:7] = 12
print(arr)

# 3:
arr[5:] = 10
print(arr)

import numpy as np
arr = np.arange(1, 10).reshape(3, 3)
# 1:
print(arr[0])
# 2:
print(arr[1:])

 

import numpy as np
arr = np.array([4, 5, 6])
# 1:
print(type(arr))

# 2:
print(arr.shape)

# 3:
print(arr[0])

 

import numpy as np
b = np.array([[4, 5, 6], [1, 2, 3]])
# 1:
print(b.shape)

# 2:
print(b[0][0], b[0][1], b[1][1])
print(b[0, 0], b[0, 1], b[1, 1])

 

import numpy as np
# 1:
a = np.zeros((3, 3), dtype=int)
# 2:
b = np.ones((4, 5))
# 3:
c = np.eye(4)
# 4:
d = np.random.rand(3, 2)


print(a)
print(b)
print(c)
print(d)

import numpy as np
a = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
b = a[0:2, 2:4]

# 1:
print(b[0, 0])

# 2:
print(a[0, -1])
print(b[0, -1])

import numpy as np
a = np.array([[1,2],[3,4],[5,6]])
print(a[0,0],a[1,1],a[2,0])

import numpy as np
a = np.array([[1,2,3],[4,5,6],[7,8,9],[10,11,12]])
print(a[0,0],a[1,2],a[2,0],a[3,1])

[ 1,  6,  7, 11]

 

 

 

 

 

 

 

10.0
[4. 6.]
[3. 7.]
2.5
[2. 3.]
[1.5 3.5]

 

[[1 2 5 6]
 [3 4 7 8]]
[[1 2]
 [3 4]
 [5 6]
 [7 8]]
[[1 2]
 [3 8]]
[[ 1  2]
 [ 3 12]] 

 

nan

False

False

nan

False

 

import numpy as np
obj1 = np.zeros(10)
obj1[4] = 1
print(obj1)

 

import numpy as np
obj1 = np.array(range(10, 50))
print(obj1[::-1])

import numpy as np
obj1 = np.random.random((10, 10))
print(np.max(obj1), np.min(obj1))
print(np.sort(obj1))

 

import numpy as np
obj1 = np.zeros((10, 10), dtype=int)
obj1[0] = 1
obj1[-1] = 1
obj1[:, 0] = 1
obj1[:, -1] = 1
print(obj1)

 

import numpy as np
# 1:
obj1 = np.array([range(5)]*5)
print(obj1)
# 2:
obj2 = np.linspace(0, 1, 12)
print(obj2)
# 3:
obj3 = np.random.rand(10)
print(np.sort(obj3))
# 4:
"""
np.argwhere(条件)->好像列表推导式
只用np.argmax()只能返回第一个下标
"""
arr = np.random.randint(1,10,10)
all_index_max = np.argwhere(arr == np.max(arr)).reshape(-1)  # 通过reshape(-1)转置
arr[all_index_max] = 0
print(arr)

 

import numpy as np
arr = np.random.randint(0, 100, (5, 5))
print(arr)
key = arr[:, 2]
print(np.argsort(key))
print(arr[np.argsort(key)])

import numpy as np
a = np.array([1, 2, 3, 4, 5])
b = np.zeros(17, dtype=int)  # 3*4+5=17
b[::4] = a
print(b)

 

import numpy as np
m = np.random.randint(0, 5, (5, 5))
print(m)
m[[1, 2]] = m[[2, 1]]  # 交换第2行和第3行
print(m)

 

import numpy as np
p = np.random.randint(0, 5, size=(5, 4))
all_mean = np.mean(p, axis=1).reshape(5, 1)
print(p)
print(p-all_mean)

 

import numpy as np
x = np.zeros((8, 8), dtype=int)
x[1::2, ::2] = 1
x[::2, 1::2] = 1
print(x)

import numpy as np
x = np.random.rand(5, 5)
max_x = np.max(x)
min_x = np.min(x)
print(max_x, min_x)
print((x-max_x)/(max_x-min_x))

import numpy as np
# 1:
a = np.random.randn(10)
print(np.where(a > 0, 1, -1))

# 2:
x = np.array([[0,7,9,5,8,1,2,6,0,4]])
print(np.piecewise(x, [x<3, ((x>3)&(x<5)), x>7], [-1, 1, lambda x:x*4]))

a1:

[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]

b1:

[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]

a2:
[ 0  0  0  0  4  5  6  7  8  9 10 11]

b2:

[[ 0  0  0  0]
 [ 4  5  6  7]
 [ 8  9 10 11]]

a3:
[ 0  1  2  3  4  5  6  7  8  9 10 11]

b3:

[[ 0  0  0  0]
 [ 4  5  6  7]
 [ 8  9 10 11]]

import numpy as np
x = np.array([[0,1,2],[3,4,5],[6,7,8]])

b = np.append(x,[[7,8,9]],axis=0)      # 插入一行
c = np.append(x,[[7],[8],[9]],axis=1)  # 插入一列

print(b)
print(c)

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值