x = np.arange(5)
y = np.empty(5)
np.multiply(x, 10, out=y)
print(y)
y = np.zeros(10)
np.power(2, x, out=y[::2])
print(y)
#聚合#对add通用函数调用reduce方法会返回数组中所有元素的和
x = np.arange(1, 6)
np.add.reduce(x)
#对multiply调用reduce方法会返回所有元素的乘积
np.multiply.reduce(x)
#如果需要存储每次计算的中间结果,可以使用accumulate
np.add.accumulate(x)
#外积#任何通用函数都可以用outer方法获取两个不同输入数组的所有元素对的函数运算结果
x = np.arange(1, 6)
np.multiply.outer(x, x)
1.4 聚合:最小值,最大值和其他值
1.4.1 数组值求和
import numpy as np
l = np.random.random(100)
sum(l)
np.sum(l)
1.4.2 最大值和最小值
a = np.min(l)
b = np.max(l)
#多维度聚合
M = np.random.random((3, 4))
M.sum()
M.min(axis=0) #求出每一列的最小值
M.min(axis=1) #求出每一行的最小值
1.5 数组的计算:广播
1.5.1广播的介绍
a = np.array([1, 2, 3])
b = np.array([5, 5, 5])
c = a + b
d = a + 5
M = np.ones((3, 3))
e = M + a
#复杂的广播示例
a = np.arange(3)
b = np.arange(3)[:, np.newaxis]
print(a)
print(b)
print( a + b)
M = np.ones((2, 3))
a = np.arange(3)
print(M + a)
a = np.arange(3).reshape((3, 1))
b = np.arange(3)
print(a + b)
M = np.ones((3, 2))
a = np.arange(3)
print(M + a) #这两个数组是不兼容的,无法进行相加
1.5.3 广播的实际应用
#数组的归一化
x = np.random.random((10, 3))
x_mean = x.mean(0)
x_centered = x - x_mean
x_centered.mean(0) #检查归一化的数组的均值是否接近0#画一个二维数组
x = np.linspace(0, 5, 50)
y = np.linspace(0, 5, 50)[:, np.newaxis]
z = np.sin(x) ** 10 + np.cos(10 + y * x) * np.cos(x)
import matplotlib.pyplot as plt
plt.imshow(z, origin='lower', extent=[0, 5, 0, 5], cmap='viridis')
plt.colorbar();
x = np.arange(10)
i = np.arraty([2, 1, 8, 4])
x[i] = 99print(x)
i = [2, 3, 3, 4, 4, 4]
x[i] += 1print(x)
x = np.zero(10)
np.add.at(x, i, 1)
print(x)
1.8 数组的排序
#简单的选择排序import numpy as np
defselection_sort(x):
for i inrange(len(X)):
swap = i +np.argmin(x[i:])
(x[i], x[swap]) = (x[swap], x[i])
return x
x = np.array([2, 1, 4, 3, 5])
x = selection(x)
print(x)
1.8.1Numpy中的快速排序,np.sort和np.argsort
x = np.array([2, 1, 4, 3, 5])
np.sort(x)
#argsort函数返回的原始数组排好序的索引值
x = np.array([3, 1, 9])
i = np.argsort(x)
print(i)
#沿着行或列进行排序
rand = np.random.Randomstate(42)
x = random.randint(0, 10, (4, 6))
print(x)
np.sort(x, axis=0) #对x的每一列进行排序
np.sort(x, axis=1) #对x的每一行进行排序
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义