1.Python数据分析与应用——NumPy数值计算基础

1、创建数组对象

#numpy 基础
import numpy as np
x=np.array([1,2,3,4])
print(x)
#列表相加
y=[1,2,3,4]+[-1,-2,-3,-4]
print(y)
#数组相加
a=np.array([1,2,3,4])
b=np.array([-1,-2,-3,-4])
z=a+b
print(z)

[1 2 3 4]
[1, 2, 3, 4, -1, -2, -3, -4]
[0 0 0 0]

#新建array
x1=np.array([1,2,3,4])
x2=np.array([[1,2,3,4],[5,6,7,8]])
x3=np.array([[[1,2,3,4],[5,6,7,8],[9,10,11,12]],[[1,2,3,4],[5,6,7,8],[9,10,11,12]]])
print(x1)
print(x2)
print(x3)
#查看数组结构
print('x1:',x1.shape,'  x2:',x2.shape,'  x3:',x3.shape)
#查看数组类型
print('x1:',x1.dtype,'  x2:',x2.dtype,'  x3:',x3.dtype)
#查看数组元素个数
print('x1:',x1.size,'  x2:',x2.size,'  x3:',x3.size)
#查看数组每个元素大小
print('x1:',x1.itemsize,'  x2:',x2.itemsize,'  x3:',x3.itemsize)

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

[[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]]]
x1: (4,) x2: (2, 4) x3: (2, 3, 4)
x1: int32 x2: int32 x3: int32
x1: 4 x2: 8 x3: 24
x1: 4 x2: 4 x3: 4

#重新设置数组的reshape属性
x=np.array([[1,2,3,4],[5,6,7,8]])
y=x.reshape(4,2)
print(y)

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

 #使用arange函数创建数组
x=np.arange(0,1,0.1)
print(x)

[0. 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9]

#linspace函数和logspace函数
#等差数列
x=np.linspace(1,100,10)
print(x)
#等比数列
y=np.logspace(0,2,20)
print(y)
'''构造5到155的10个数的等比数列'''
import math
i=math.log(5,10)
j=math.log(155,10)
z=np.logspace(i,j,10)
print(z)

[ 1. 12. 23. 34. 45. 56. 67. 78. 89. 100.]
[ 1. 1.27427499 1.62377674 2.06913808 2.6366509
3.35981829 4.2813324 5.45559478 6.95192796 8.8586679
11.28837892 14.38449888 18.32980711 23.35721469 29.76351442
37.92690191 48.32930239 61.58482111 78.47599704 100. ]
[ 5. 7.32279471 10.72466448 15.70690326 23.00368563
33.69025349 49.34136202 72.26333296 105.83391049 155. ]

 #使用zeros函数/eye函数/diag函数/ones函数创建数组
x=np.zeros((2,3))
print(x)
y=np.eye(3)#对角线全为1
print(y)
z=np.diag([1,2,3,4])#对角线
print(z)
t=np.ones((4,3))#全为1
print(t)

[[0. 0. 0.]
[0. 0. 0.]]
[[1. 0. 0.]
[0. 1. 0.]
[0. 0. 1.]]
[[1 0 0 0]
[0 2 0 0]
[0 0 3 0]
[0 0 0 4]]
[[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]]

2、生成随机数

 #随机数
import random
import numpy as np
x=random.randint(1,10)#上下界中随机一个数
print(x)
y=random.choice([1,22,333,4444])#数组中随机一个数
print(y)
z=np.random.random(10)#生成对应个数的随机数
print(z)
t=np.random.randint(2,10,size=[2,5])
print(t)

8
22
[0.38327183 0.46412497 0.33244229 0.34117501 0.36646363 0.44531858
0.8557724 0.2786145 0.55788182 0.81091057]
[[6 8 3 3 9]
[6 9 9 5 2]]

3、通过索引访问数组

 #通过索引访问一维数组
t=np.random.randint(2,100,size=(4,5))
print(t)
#求和
s=0
for i in t:
    for j in i:
        s+=j
print(s)

[[74 50 73 37 89]
[64 92 85 88 60]
[61 56 86 22 96]
[59 61 62 58 75]]
1348

#切片访问
x=np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
print(x)
print(x[0:2,2:])
print(x[::-1,::-1])
x.ravel()#数组展平

[[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]]
[[3 4]
[7 8]]
[[12 11 10 9]
[ 8 7 6 5]
[ 4 3 2 1]]
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])

4.创建NumPy矩阵

#矩阵
x=np.matrix([[1,2,3],[4,5,6],[7,8,9]])
y=np.matrix(np.ones((3,3)))
print(x)
print(y)
print(x.T)#转置
print(x.I)#逆矩阵
t=np.multiply(x,x)
print(t)#矩阵对应元素相乘

[[1 2 3]
[4 5 6]
[7 8 9]]
[[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]]
[[1 4 7]
[2 5 8]
[3 6 9]]
[[ 3.15251974e+15 -6.30503948e+15 3.15251974e+15]
[-6.30503948e+15 1.26100790e+16 -6.30503948e+15]
[ 3.15251974e+15 -6.30503948e+15 3.15251974e+15]]
[[ 1 4 9]
[16 25 36]
[49 64 81]]

5、读/写文件

 #单数组的文件保存和读取
x1=np.random.randint(1,100,(5,20))
np.save("d:/test",x1)
x=np.load("d:/test.npy")
#多数组的文件保存和读取
x1=np.random.randint(1,100,(5,20))
x2=np.random.randint(1,100,(5,20))
x3=np.random.randint(1,100,(5,20))
np.savez("d:/Test",x1,x2,x3)
X=np.load("d:/test.npz")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧农业是一种结合了现代信息技术,包括物联网、大数据、云计算等,对农业生产过程进行智能化管理和监控的新模式。它通过各种传感器和设备采集农业生产中的关键数据,如大气、土壤和水质参数,以及生物生长状态等,实现远程诊断和精准调控。智慧农业的核心价值在于提高农业生产效率,保障食品安全,实现资源的可持续利用,并为农业产业的转型升级提供支持。 智慧农业的实现依赖于多个子系统,包括但不限于设施蔬菜精细化种植管理系统、农业技术资料库、数据采集系统、防伪防串货系统、食品安全与质量追溯系统、应急追溯系统、灾情疫情防控系统、农业工作管理系统、远程诊断系统、监控中心、环境监测系统、智能环境控制系统等。这些系统共同构成了一个综合的信息管理和服务平台,使得农业生产者能够基于数据做出更加科学的决策。 数据采集是智慧农业的基础。通过手工录入、传感器自动采集、移动端录入、条码/RFID扫描录入、拍照录入以及GPS和遥感技术等多种方式,智慧农业系统能够全面收集农业生产过程中的各种数据。这些数据不仅包括环境参数,还涵盖了生长状态、加工保存、检验检疫等环节,为农业生产提供了全面的数据支持。 智慧农业的应用前景广阔,它不仅能够提升农业生产的管理水平,还能够通过各种应用系统,如库房管理、无公害监控、物资管理、成本控制等,为农业生产者提供全面的服务。此外,智慧农业还能够支持政府监管,通过发病报告、投入品报告、死亡报告等,加强农业产品的安全管理和质量控制。 面对智慧农业的建设和发展,存在一些挑战,如投资成本高、生产过程标准化难度大、数据采集和监测的技术难题等。为了克服这些挑战,需要政府、企业和相关机构的共同努力,通过政策支持、技术创新和教育培训等手段,推动智慧农业的健康发展。智慧农业的建设需要明确建设目的,选择合适的系统模块,并制定合理的设备布署方案,以实现农业生产的智能化、精准化和高效化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值