NumPy快速入门(一)

NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。

NumPy作为高性能科学计算和数据分析的基础包,是其他重要数据分析工具的基础。

一、认识NumPy数组对象

import numpy as np #导入numpy数据包
data=np.arange(12).reshape(3,4) #创建一个3行4列的数组
print(data)
print(type(data))
print(data.ndim) #数组维度 输出2,表示二维数组
print(data.shape)#数组的维度,输出(3,4),表示3行4列
print(data.size,data.dtype)  #数组元素的个数和元素类型

输出:

[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
<class ‘numpy.ndarray’>
2
(3, 4)
12 int32

二、创建NumPy数组

import numpy as np
data1=np.array([1,2,3])#创建一维数组
print(data1)
data2=np.array([[1,2,3],[4,5,6]])#创建二维数组
print(data2)
data3=np.zeros((3,4))#创建元素都是0的二维数组
print(data3)
data4=np.ones((2,3))#创建元素都是1的二维数组
print(data4)
d5=np.empty((5,2))#创建数组,元素随机,数据类型默认为float64
print(d5)
d6=np.arange(1,20,5)#创建等差数组
print(d6,d6.dtype)

输出:

[1 2 3]
[[1 2 3]
[4 5 6]]
[[0. 0. 0. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]
[[1. 1. 1.]
[1. 1. 1.]]
[[ nan 0.000000e+000]
[1.118637e-311 2.023693e-320]
[0.000000e+000 0.000000e+000]
[0.000000e+000 0.000000e+000]
[0.000000e+000 0.000000e+000]]
[ 1 6 11 16] int32

三、ndarray对象的数据类型

d7=np.array([1,2,3],float)#显式声明数组元素的类型 
print(d7) 
d8=np.ones((2,3),dtype='float64')#创建元素都是0的二维数组 
print(d8)

输出:

[1. 2. 3.]
[[1. 1. 1.]
[1. 1. 1.]]

转换数据类型

import numpy as np
d1=np.array([1,2,3])
print(d1.dtype,d1.dtype.name)
float_d1=d1.astype(np.float32)#数据类型转换为float32
print(float_d1,float_d1.dtype)

float_d2=np.array([1.2,3.8,4.5])
int_d2=float_d2.astype(np.int32)#数据类型转换为int32,小数点后的部分截掉
print(int_d2,int_d2.dtype)

输出:

int32 int32
[1. 2. 3.] float32
[1 3 4] int32

125jz网原创文章。发布者:江山如画,转载请注明出处:http://www.125jz.com/10170.html

(0)
江山如画的头像江山如画管理团队
上一篇 2022年1月4日 上午7:58
如何去掉片头、片尾?
下一篇 2022年1月28日 上午7:54

99%的人还看了以下文章

  • 【Java面试题】15道经典的java面试题(附答案)

    Java是一种可以跨平台的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。今天,中国网页设计给大家分享15道较为经典的Java面试题,希望对你将来在企业面试中能有所帮助! 1、面向对象的特征有哪些方面? 2、访问修饰符…

    2018年8月1日
    2.3K0
  • opencv 图像旋转 cv2.rotate和np.rot90案例精讲

    OpenCV 方法 OpenCV 中带有一个旋转图像的函数 cv2.rotate rotate(src, rotateCode[, dst]) -> dst参数:src:输入图像rotateCode:旋转方式1、cv2.ROTATE_90_CLOCKWISE:顺时针 90 度2、cv2.ROTATE_180:顺时针 180 度3、cv2.ROTATE_…

    2022年12月1日
    11.1K0
  • Ubuntu在线体验(不用安装) 

    Ubuntu是一个以桌面应用为主的Linux操作系统,是非常轻量级的操作系统,全球领先的用于个人电脑、平板及手机的操作系统。 想过要体验下Ubuntu,其实不用那么麻烦,在线就能体验该系统!! 在任意浏览器打开链接https://www.ubuntu.org.cn/tour/zh-CN/ (中文)、https://www.ubuntu.org.cn/tour…

    2022年9月1日
    16.4K0
  • 单元测试环境、过程及任务,单元测试快速入门教程二

    单元测试环境及过程 单元测试环境 单元测试环境的建立是单元测试工作进行的前提和基础,在测试过程中起到的作用不言而喻。单元测试环境并不一定是系统投入使用后所需的真实环境,可采用模拟环境。 由于一个模块或一个方法(Method)不是一个独立的程序,在测试时要考虑它和外界的联系,因此要用到一些辅助模块来模拟与所测模块相联系的其它模块。辅助模块分两种: 驱动模块:相…

    2018年4月16日
    10.6K0
  • 一文让你快速理解欠拟合和过拟合,以及解决欠拟合和过拟合的方法?(精)

    前面分享过《深度学习中的激活函数、防止过拟合的方法》、《最清楚的过拟合(Overfitting)、欠拟合讲解》,今天给125建站网再给大家梳理一下,让你快速理解欠拟合和过拟合,以及解决欠拟合和过拟合的方法? 欠拟合与过拟合 欠拟合是指模型在训练集、验证集和测试集上均表现不佳的情况; 过拟合是指模型在训练集上表现很好,到了验证和测试阶段就大不如意了,即模型的泛…

    2023年1月16日
    4.4K0
  • Double.valueOf(r).doubleValue();是什么意思

    在一段代码中看到Double.valueOf(“2020”).doubleValue(),先出现了Double.valueOf(),又用了doubleValue(),有点迷惑,为什么这么用呢? <% String s=request.getParameter(“radius”); double r; if(s!=null) {r…

    2019年9月5日
    15.8K0

发表回复

登录后才能评论