NumPy是Python语言的一个扩充程序库。支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。Numpy内部解除了Python的PIL(全局解释器锁),运算效率极好,是大量机器学习框架的基础库!

Numpy简单创建数组

nlist = np.array([1,2,3])
print(nlist)
#[1 2 3]

Numpy查看数组属性

#ndim方法用来查看数组维度
print(nlist.ndim) # #二维数组
nlist_2 = np.array([[1,2,3],[4,5,6]])
print(nlist_2)
print(nlist_2.ndim) #[[1 2 3]
# [4 5 6]]
# #使用shape属性来大印多维数组的形状
print(nlist.shape,nlist_2.shape)
#(3,) (2, 3) #使用size方法来打印多维数组的元素个数
print(np.size(nlist))
print(np.size(nlist_2))
#
# #打印numpy多维数组的数据类型
print(type(nlist))
#<class 'numpy.ndarray'> #使用dtype属性打印多维数组内部元素的数据类型
print(nlist.dtype)
#itemsizes属性,多维数组中的数据类型大小,字节
print(nlist.itemsize)
#data属性 打印数据缓冲区 buffer
print(nlist.data)
# int32
#
# <memory at 0x0000023047DB5C48>

快速创建N维数组的api函数

#使用ones方法,自动生成元素为1的多维数组
nlist_ones = np.ones((4,4))
print(nlist_ones)
print(nlist_ones.dtype) #[[1. 1. 1. 1.]
# [1. 1. 1. 1.]
# [1. 1. 1. 1.]
# [1. 1. 1. 1.]]
#float64 #zeros
nlist_zeros = np.zeros((4,4))
print(nlist_zeros)
#[[0. 0. 0. 0.]
# [0. 0. 0. 0.]
# [0. 0. 0. 0.]
# [0. 0. 0. 0.]] #使用empty方法来生成随机多维数组,使用第二参数指定数据类型
  nlistempty = np.empty([2,2])
 nlist_empty = np.empty([2,2],dtype=np.int)
print(nlistempty)
 print(nlist_empty)
#[[5.e-324 5.e-324]
# [0.e+000 0.e+000]]
#[[0 0]
# [0 0]]
使用reshape方法来反向生成多维数组

nlist_3 = np.array(range(24)).reshape((3,2,4))
print(nlist_3)
print(nlist_3.shape)
nlist_float = np.array([1.0,2.0])
print(nlist_float.dtype)
#使用字符串
nlist_string=np.array(['','',''])
print(nlist_string.dtype) #[[[ 0 1 2 3]
# [ 4 5 6 7]]
#
# [[ 8 9 10 11]
# [12 13 14 15]]
#
# [[16 17 18 19]
# [20 21 22 23]]]
#(3, 2, 4)
#float64
#<U1
把普通list转换为数组
x = [1,2,3]
x = [(1,2,3),(4,5)]
nlist = np.asarray(x)
print(nlist) #[(1, 2, 3) (4, 5)]
frombuffer 通过字符串(buffer内存地址)切片来生成多维数组

my_str = b"hello world"
nlist_str = np.frombuffer(my_str,dtype='S1')
print(nlist_str) #[b'h' b'e' b'l' b'l' b'o' b' ' b'w' b'o' b'r' b'l' b'd']
axis 属性可以指定当前多维数组的维度(0表示行,1表示列 keepdims表示结构)
sum0 = np.sum(x,axis=0,keepdims=False)
print(sum0)
sum1 = np.sum(x,axis=1,keepdims=1)
sum = np.sum(x,axis=1,keepdims=0)
print(sum1,sum) #[4 6]
#[[3]
# [7]]
#[3 7]
维度级的运算

a = np.array([[1,2],[3,4],[5,6]])
b = np.array([[10,20],[30,40],[50,60]]) #vstack方法
suma = np.vstack((a,b))
print(suma)
print("-"*30)
#hstack方法
sumb = np.hstack((a,b))
print(sumb) #[[ 1 2]
#[ 3 4]
# [ 5 6]
# [10 20]
# [30 40]
# [50 60]]
------------------------------
#[[ 1 2 10 20]
# [ 3 4 30 40]
# [ 5 6 50 60]]
多维数组的调用
nlist=np.array([[1,2],[3,4],[5,6]])
print(nlist[1][1])
print(nlist[1,1])
#删除方法 delete
#s删除nlist第二行
print(np.delete(nlist,1,axis=0))
print(np.delete(nlist,0,axis=1)) #
#
#[[1 2]
# [5 6]]
#[[2]
# [4]
# [6]]

**未完待续

Numpy 机器学习三剑客之Numpy的更多相关文章

  1. Python:机器学习三剑客之 NumPy

    一.numpy简介 Numpy是高性能科学计算和数据分析的基础包,机器学习三剑客之一.Numpy库中最核心的部分是ndarray 对象,它封装了同构数据类型的n维数组.部分功能如下: ndarray, ...

  2. 机器学习三剑客之Numpy库基本操作

    NumPy是Python语言的一个扩充程序库.支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库.Numpy内部解除了Python的PIL(全局解释器锁),运算效率极好,是大量机 ...

  3. 机器学习三剑客之Numpy

      Numpy NumPy是Python语言的一个扩充程序库.支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库.Numpy内部解除了Python的PIL(全局解释器锁),运算效 ...

  4. 机器学习 三剑客 之 pandas + numpy

    机器学习 什么是机器学习? 机器学习是从数据中自动分析获得规律(模型),并利用规律对未知数据进行预测 机器学习存在的目的和价值领域? 领域: 医疗.航空.教育.物流.电商 等... 目的: 让机器学习 ...

  5. 数据分析三剑客之numpy

    Numpy 简介 数据分析三剑客:Numpy,Pandas,Matplotlib NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算, ...

  6. python数据分析三剑客之: Numpy

    数据分析三剑客之: Numpy 一丶Numpy的使用 ​ numpy 是Python语言的一个扩展程序库,支持大维度的数组和矩阵运算.也支持针对数组运算提供大量的数学函数库 创建ndarray # 1 ...

  7. 机器学习之路--Numpy

    常用代码 ndarray.dtype 数据类型必须是一样的 常用代码 import numpy #numpy读取文件 world_alcohol = numpy.genfromtxt("wo ...

  8. 【numpy】新版本中numpy(numpy>1.17.0)中的random模块

    numpy是Python中经常要使用的一个库,而其中的random模块经常用来生成一些数组,本文接下来将介绍numpy中random模块的一些使用方法. 首先查看numpy的版本: import nu ...

  9. 《机器学习实战》---NumPy

    NumPy库函数基础: 机器学习算法涉及很多线性代数知识. NumPy库中有很多线性代数计算. 之所以用到线性代数只是为了简化不同的数据点上执行的相同数学运算.将数据表示为矩阵形式, 只需要执行简单的 ...

随机推荐

  1. maven 打jar 被引用后 出现 cannot resolve symbol 错误 生成jar包形式代码文件组织格式 非springboot文件组织格式

    项目A引用项目B A项目中pom引入没有报错,但是:1,idea里面查找到b项目中的代码时,会提示b代码中的引用不正确.提示无法解析语法 解压B的jar,发现目录是: springboot文件组织格式 ...

  2. 【转】ELK 日志分析系统

    大纲: 一.简介 二.Logstash 三.Redis 四.Elasticsearch 五.Kinaba 一.简介 1.核心组成 ELK由Elasticsearch.Logstash和Kibana三部 ...

  3. 回忆:NVelocity--基于.NET的模板引擎

    相关网址: http://www.castleproject.org/others/nvelocity/index.html http://www.castleproject.org/castle/d ...

  4. jxl和POI的区别

    最近两个项目中分别用到jxl和POI,因为用的都是其中的简单的功能,所以没有觉得这其中有太大的区别.有人针对他们做了比较,这里也拿出来展示一下. 首先从优缺点上来说 一.jxl 优点: Jxl对中文支 ...

  5. [Python] 08 - Classes --> Objects

    故事背景 一.阶级关系 1. Programs are composed of modules.2. Modules contain statements.3. Statements contain ...

  6. [AWS] Serverless

    先来个热身 一整套方案,构建移动消息收发应用程序 (iOS) 要实现的目标: 使用 AWS Mobile Hub 为聊天应用程序配置移动云计算后端基础设施. 使用 Amazon Cognito 配置适 ...

  7. 《objective-c基础教程》学习笔记(六)—— 复合方法

    今天我们要讲的复合,当然不是小情侣吵着分手,然后又在一起的复合. 复合遵循一个合成复用原则,又称为组合或者聚合复用原则.该原则的内容是:尽量使用对象组合,而不是继承来达到复用的目的.用聚合可以使系统更 ...

  8. 网络编程 -- RPC实现原理 -- Netty -- 迭代版本V3 -- 编码解码

    网络编程 -- RPC实现原理 -- 目录 啦啦啦 V2——Netty -- pipeline.addLast(io.netty.handler.codec.MessageToMessageCodec ...

  9. iOS开发-- TFHpple抓取GB-2312编码的html页面,页面返回编码错误

    今天用TFHpple解析html,发现老报错encoding error : input conversion failed due to input error, bytes  I/O error ...

  10. 使用Anaconda3配置多版本Python虚拟开发环境

    有时候,为了使用比较干净的开发环境,或者为了测试一些版本的扩展库,我们可能需要创建虚拟开发环境,在不同的虚拟开发环境中,只安装需要的扩展库,这样可以最大程度上减少不同扩展库之间的兼容性带来的冲突或其他 ...