科学计算工具NumPy(1):ndarray的创建于数据类型
科学计算工具NumPy(1):ndarray的创建于数据类型
科学计算工具NumPy(2):ndarray的矩阵处理
科学计算工具NumPy(3):ndarray的元素处理
Numpy(Numerical Python)
Numpy:提供了一个在Python中做科学计算的基础库,重在数值计算,主要用于多维数组(矩阵)处理的库。用来存储和处理大型矩阵,比Python自身的嵌套列表结构要高效的多。本身是由C语言开发,是个很基础的扩展,Python其余的科学计算扩展大部分都是以此为基础。
高性能科学计算和数据分析的基础包
ndarray,多维数组(矩阵),具有矢量运算能力,快速、节省空间
矩阵运算,无需循环,可完成类似Matlab中的矢量运算
线性代数、随机数生成
import numpy as np
Scipy
Scipy :基于Numpy提供了一个在Python中做科学计算的工具集,专为科学和工程设计的Python工具包。主要应用于统计、优化、整合、线性代数模块、傅里叶变换、信号和图像处理、常微分方程求解、稀疏矩阵等,在数学系或者工程系相对用的多一些,和数据处理的关系不大, 我们知道即可,这里不做讲解。
在NumPy库的基础上增加了众多的数学、科学及工程常用的库函数
线性代数、常微分方程求解、信号处理、图像处理
一般的数据处理numpy已经够用
import scipy as sp
ndarray的创建于数据类型
NumPy数组是一个多维的数组对象(矩阵),称为ndarray
,具有矢量算术运算能力和复杂的广播能力,并具有执行速度快和节省空间的特点。
注意:ndarray的下标从0开始,且数组里的所有元素必须是相同类型
ndarray拥有的属性
ndim属性
:维度个数shape属性
:维度大小dtype属性
:数据类型
ndarray的随机创建
通过随机抽样 (numpy.random) 生成随机数据。
# 导入numpy,别名np
import numpy as np# 生成指定维度大小(3行4列)的随机多维浮点型数据(二维),rand固定区间0.0 ~ 1.0
arr = np.random.rand(3, 4)
print(arr)
print(type(arr))# 生成指定维度大小(3行4列)的随机多维整型数据(二维),randint()可以指定区间(-1, 5)
arr = np.random.randint(-1, 5, size = (3, 4)) # 'size='可省略
print(arr)
print(type(arr))# 生成指定维度大小(3行4列)的随机多维浮点型数据(二维),uniform()可以指定区间(-1, 5)
arr = np.random.uniform(-1, 5, size = (3, 4)) # 'size='可省略
print(arr)
print(type(arr))print('维度个数: ', arr.ndim)
print('维度大小: ', arr.shape)
print('数据类型: ', arr.dtype)
运行结果:
[[ 0.09371338 0.06273976 0.22748452 0.49557778][ 0.30840042 0.35659161 0.54995724 0.018144 ][ 0.94551493 0.70916088 0.58877255 0.90435672]]
<class 'numpy.ndarray'>[[ 1 3 0 1][ 1 4 4 3][ 2 0 -1 -1]]
<class 'numpy.ndarray'>[[ 2.25275308 1.67484038 -0.03161878 -0.44635706][ 1.35459097 1.66294159 2.47419548 -0.51144655][ 1.43987571 4.71505054 4.33634358 2.48202309]]
<class 'numpy.ndarray'>维度个数: 2
维度大小: (3, 4)
数据类型: float64
ndarray的序列创建
1. np.array(collection)
collection 为 序列型对象(list)、嵌套序列对象(list of list)。
# list序列转换为 ndarray
lis = range(10)
arr = np.array(lis)print(arr) # ndarray数据
print(arr.ndim) # 维度个数
print(arr.shape) # 维度大小# list of list嵌套序列转换为ndarray
lis_lis = [range(10), range(10)]
arr = np.array(lis_lis)print(arr) # ndarray数据
print(arr.ndim) # 维度个数
print(arr.shape) # 维度大小
运行结果:
# list序列转换为 ndarray
[0 1 2 3 4 5 6 7 8 9]
1
(10,)# list of list嵌套序列转换为 ndarray
[[0 1 2 3 4 5 6 7 8 9][0 1 2 3 4 5 6 7 8 9]]
2
(2, 10)
2. np.zeros()
指定大小的全0数组。注意:第一个参数是元组,用来指定大小,如(3, 4)。
3. np.ones()
指定大小的全1数组。注意:第一个参数是元组,用来指定大小,如(3, 4)。
4. np.empty()
初始化数组,不是总是返回全0,有时返回的是未初始的随机值(内存里的随机值)。
# np.zeros
zeros_arr = np.zeros((3, 4))# np.ones
ones_arr = np.ones((2, 3))# np.empty
empty_arr = np.empty((3, 3))# np.empty 指定数据类型
empty_int_arr = np.empty((3, 3), int)print('------zeros_arr-------')
print(zeros_arr)print('\n------ones_arr-------')
print(ones_arr)print('\n------empty_arr-------')
print(empty_arr)print('\n------empty_int_arr-------')
print(empty_int_arr)
运行结果:
------zeros_arr-------
[[ 0. 0. 0. 0.][ 0. 0. 0. 0.][ 0. 0. 0. 0.]]------ones_arr-------
[[ 1. 1. 1.][ 1. 1. 1.]]------empty_arr-------
[[ 0. 0. 0.][ 0. 0. 0.][ 0. 0. 0.]]------empty_int_arr-------
[[0 0 0][0 0 0][0 0 0]]
5. np.arange()
和 reshape()
arange() 类似 python 的 range() ,创建一个一维 ndarray 数组。
reshape() 将 重新调整数组的维数。
# np.arange()
arr = np.arange(15) # 15个元素的 一维数组
print(arr)
print(arr.reshape(3, 5)) # 3x5个元素的 二维数组
print(arr.reshape(1, 3, 5)) # 1x3x5个元素的 三维数组
运行结果:
[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14][[ 0 1 2 3 4][ 5 6 7 8 9][10 11 12 13 14]][[[ 0 1 2 3 4][ 5 6 7 8 9][10 11 12 13 14]]]
6. np.arange()
和 random.shuffle()
random.shuffle() 将打乱数组序列(类似于洗牌)。
arr = np.arange(15)
print(arr)np.random.shuffle(arr)
print(arr)
print(arr.reshape(3,5))
运行结果:
[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14][ 5 8 1 7 4 0 12 9 11 2 13 14 10 3 6][[ 5 8 1 7 4][ 0 12 9 11 2][13 14 10 3 6]]
ndarray的数据类型
1. dtype
参数
指定数组的数据类型,类型名+位数,如float64, int32
2. astype
方法
转换数组的数据类型
# 初始化3行4列数组,数据类型为float64
zeros_float_arr = np.zeros((3, 4), dtype=np.float64)
print(zeros_float_arr)
print(zeros_float_arr.dtype)# astype转换数据类型,将已有的数组的数据类型转换为int32
zeros_int_arr = zeros_float_arr.astype(np.int32)
print(zeros_int_arr)
print(zeros_int_arr.dtype)
运行结果:
[[ 0. 0. 0. 0.][ 0. 0. 0. 0.][ 0. 0. 0. 0.]]
float64[[0 0 0 0][0 0 0 0][0 0 0 0]]
int32
参考资料
科学计算工具NumPy(1):ndarray的创建于数据类型相关推荐
- 科学计算工具NumPy(3):ndarray的元素处理
科学计算工具NumPy(1):ndarray的创建于数据类型 科学计算工具NumPy(2):ndarray的矩阵处理 科学计算工具NumPy(3):ndarray的元素处理 元素计算函数 ceil() ...
- 科学计算工具NumPy(2):ndarray的矩阵处理
科学计算工具NumPy(1):ndarray的创建于数据类型 科学计算工具NumPy(2):ndarray的矩阵处理 科学计算工具NumPy(3):ndarray的元素处理 ndarray的矩阵运算 ...
- python矩阵sin计算器_Python科学计算工具
Python科学计算工具-Numpy入门 2017.07.02 20:29:14字数 1,404阅读 2,509 一:前言 学了中国大学mooc的Python数据分析与展示课程感觉挺不错的,记录下来以 ...
- 一文带你熟悉简单实用的Python科学计算库NumPy
Python科学计算库NumPy 安装 数组的创建 array创建 **arange** 创建 **随机数创建** 方法numpy.random.random(size=None) 方法numpy.r ...
- AI常用框架和工具丨1. 科学计算库NumPy
科学计算库NumPy,AI常用框架和工具之一.理论知识结合代码实例,希望对您有所帮助. 文章目录 环境说明 一.NumPy简介 二.数组 2.1 NumPy数组的优势 2.2 ndarray对象 2. ...
- numpy 创建加一行_数据科学|可视化图解Python科学计算包Numpy
文章申明 文章作者:梁斌伟 责任编辑:郭德真 微信编辑:玖蓁 本文转载自公众号 实战统计学 (ID:statrcn) 原文链接:可视化图解Python科学计算包NumPy 作者:梁斌伟 编者按: 你真 ...
- 【转】5.3 Python的科学计算包 - Numpy
numpy(Numerical Python extensions)是一个第三方的Python包,用于科学计算.这个库的前身是1995年就开始开发的一个用于数组运算的库.经过了长时间的发展,基本上成了 ...
- numpy不用科学记数发 python_Python科学计算库Numpy常用的函数使用
林小森博客: Python科学计算库Numpy常用的函数使用 - 林小森www.linxiaosen.com Numpy具有强大的计算功能,本文介绍Numpy常用的函数,可以有效的提高工作效率. 首 ...
- python矩阵运算法则_导数与梯度、矩阵运算性质、科学计算库numpy
一.实验介绍 1.1 实验内容 虽然在实验一中我想尽量少的引入(会让人放弃继续学习的)数学概念,但我似乎还是失败了.不过这几乎是没有办法的事,要想真正学会深度学习,没有一定的数学基础(高等数学.线性代 ...
最新文章
- php imagecopy 用法,php使用imagecopymerge()函数创建半透明水印
- BZOJ 4212: 神牛的养成计划
- [转]SQL交叉表实例
- CakePHP 2.10.17 发布,PHP 快速开发框架
- global.asax不执行原因
- STM32F103mini教程学习总结与心得(四)---->看门狗
- python和c++哪个好-C#、C++、Java、Python 选择哪个好?
- 设计模式之观察者Observer
- linux该专接本还是工作_先专接本还是先工作?
- CoolHC Volume 1 By CoolFire
- html小米秒杀倒计时,JavaScript_JQuery仿小米手机抢购页面倒计时效果,1、效果及功能说明
通过对时 - phpStudy...
- 应对雾霾,哪款口罩适合你?
- 爆音(杂音)问题的推论与解决
- RecyclerView 删除元素后,点击报 IndexOutOfBoundsException 解决方法
- java半角英数check_jQuery教程之输入内容控制为半角英数字+限定符号问题如何解决...
- x射线图像去坏点算法
- 为黑客打工能挣多少?月薪最高达2万美元
- c语言int作用,c语言中int的用法
- Nginx 502的解决方法
- 爬楼梯/青蛙跳台阶,不会还有人不会吧