Numpy笔记5

##numpy笔记5

#排序
numpy.sort()

numpy.sort(a, axis, kind, order)
#a 要排序的数组
#axis 沿着它排序数组的轴,如果没有数组会被展开,沿着最后的轴排序
#kind 默认为’quicksort’(快速排序)
#order 如果数组包含字段,则是要排序的字段

a = np.array([[3,7],[9,1]])
print(‘我们的数组是:’)
print(a)

print(‘调用 sort() 函数:’)
print(np.sort(a))

print(‘沿轴 0 排序:’)
print(np.sort(a, axis = 0))

#在 sort 函数中排序字段
dt = np.dtype([(‘name’, ‘S10’),(‘age’, int)])
a = np.array([(“raju”,21),(“anil”,25),(“ravi”, 17), (“amar”,27)], dtype = dt)
print(‘我们的数组是:’)
print(a)

print(‘按 name 排序:’)
print(np.sort(a, order = ‘name’))

#输出
#我们的数组是:
#[[3 7]
#[9 1]]

#调用 sort() 函数:
#[[3 7]
#[1 9]]

#沿轴 0 排序:
#[[3 1]
#[9 7]]

#我们的数组是:
#[(‘raju’, 21) (‘anil’, 25) (‘ravi’, 17) (‘amar’, 27)]

#按 name 排序:
#[(‘amar’, 27) (‘anil’, 25) (‘raju’, 21) (‘ravi’, 17)]

numpy.argsort()
#函数对输入数组沿给定轴执行间接排序,并使用指定排序类型返回数据的索引数组。 这个索引数组用于构造排序后的数组

x = np.array([3, 1, 2])
print(‘我们的数组是:’)
print(x)

print(‘对 x 调用 argsort() 函数:’)
y = np.argsort(x)
print(y)

print(‘以排序后的顺序重构原数组:’)
print(x[y])

print(‘使用循环重构原数组:’)
for i in y:
print(x[i])

#输出
#我们的数组是:
#[3 1 2]

#对 x 调用 argsort() 函数:
#[1 2 0]

#以排序后的顺序重构原数组:
#[1 2 3]

#使用循环重构原数组:
#1 2 3

#numpy.extract()

#函数返回满足任何条件的元素

x = np.arange(9.).reshape(3, 3)
print(‘我们的数组是:’)
print(x)
#定义条件
condition = np.mod(x,2) == 0
print(‘按元素的条件值:’)
print(condition)
print(‘使用条件提取元素:’)
print(np.extract(condition, x))

#我们的数组是:
#[[ 0. 1. 2.]
#[ 3. 4. 5.]
#[ 6. 7. 8.]]

#按元素的条件值:
#[[ True False True]
#[False True False]
#[ True False True]]

#使用条件提取元素:
#[ 0. 2. 4. 6. 8.]

#副本和视图

#无复制
#简单的赋值不会创建数组对象的副本
#一个数组的任何变化都反映在另一个数组上。 例如,一个数组的形状改变也会改变另一个数组的形状

a = np.arange(6)
print(‘我们的数组是:’)
print(a)
print(‘调用 id() 函数:’)
print(id(a))
print(‘a 赋值给 b:’)
b = a
print(b)
print(‘b 拥有相同 id():’)
print(id(b))
print(‘修改 b 的形状:’)
b.shape = 3,2
print(b)
print(‘a 的形状也修改了:’)
print(a)

#输出
#我们的数组是:
#[0 1 2 3 4 5]

#调用 id() 函数:
#139747815479536

#a 赋值给 b:
#[0 1 2 3 4 5]
#b 拥有相同 id():
#139747815479536

#修改 b 的形状:
#[[0 1]
#[2 3]
#[4 5]]

#a 的形状也修改了:
#[[0 1]
#[2 3]
#[4 5]]

#视图或浅复制

ndarray.view()
#它是一个新的数组对象,并可查看原始数组的相同数据。 与前一种情况不同,新数组的维数更改不会更改原始数据的维数

b = a.view()

#数组的切片也会创建视图
a = np.array([[10,10], [2,3], [4,5]])
print(‘我们的数组:’)
print(a)
print(‘创建切片:’)
s = a[:, :2]
print(s)

#输出
#我们的数组:
#[[10 10]
#[ 2 3]
#[ 4 5]]

#创建切片:
#[[10 10]
#[ 2 3]
#[ 4 5]]

#深复制

ndarray.copy()
#函数创建一个深层副本。 它是数组及其数据的完整副本,不与原始数组共享

b = a.copy()

#矩阵库
#numpy.matlib,此模块的函数返回矩阵而不是返回ndarray对象

#线性代数
#numpy.linalg模块,提供线性代数所需的所有功能

IO
#load()和save()函数处理 numPy 二进制文件(带npy扩展名)
b = np.load(‘outfile.npy’)
a = np.array([1,2,3,4,5])
np.save(‘outfile’,a)

#loadtxt()和savetxt()函数处理正常的文本文件
a = np.array([1,2,3,4,5])
np.savetxt(‘out.txt’,a)
b = np.loadtxt(‘out.txt’)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园的建设目标是通过数据整合、全面共享,实现校园内教学、科研、管理、服务流程的数字化、信息化、智能化和多媒体化,以提高资源利用率和管理效率,确保校园安全。 智慧校园的建设思路包括构建统一支撑平台、建立完善管理体系、大数据辅助决策和建设校园智慧环境。通过云架构的数据中心与智慧的学习、办公环境,实现日常教学活动、资源建设情况、学业水平情况的全面统计和分析,为决策提供辅助。此外,智慧校园还涵盖了多媒体教学、智慧录播、电子图书馆、VR教室等多种教学模式,以及校园网络、智慧班牌、校园广播等教务管理功能,旨在提升教学品质和管理水平。 智慧校园的详细方案设计进一步细化了教学、教务、安防和运维等多个方面的应用。例如,在智慧教学领域,通过多媒体教学、智慧录播、电子图书馆等技术,实现教学资源的共享和教学模式的创新。在智慧教务方面,校园网络、考场监控、智慧班牌等系统为校园管理提供了便捷和高效。智慧安防系统包括视频监控、一键报警、阳光厨房等,确保校园安全。智慧运维则通过综合管理平台、设备管理、能效管理和资产管理,实现校园设施的智能化管理。 智慧校园的优势和价值体现在个性化互动的智慧教学、协同高效的校园管理、无处不在的校园学习、全面感知的校园环境和轻松便捷的校园生活等方面。通过智慧校园的建设,可以促进教育资源的均衡化,提高教育质量和管理效率,同时保障校园安全和提升师生的学习体验。 总之,智慧校园解决方案通过整合现代信息技术,如云计算、大数据、物联网和人工智能,为教育行业带来了革命性的变革。它不仅提高了教育的质量和效率,还为师生创造了一个更加安全、便捷和富有智慧的学习与生活环境。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值