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. Java和Scala语法比较

    类型推断 挑逗指数: 四星 我们知道,Scala一向以强大的类型推断闻名于世.很多时候,我们无须关心Scala类型推断系统的存在,因为很多时候它推断的结果跟直觉是一致的. Java在2016 年也新增 ...

  2. python 数据结构之顺序列表的实现

    算法简要: 追加直接往列表后面添加元素,插入是将插入位置后的元素全部往后面移动一个位置,然后再将这个元素放到指定的位置,将长度加1删除是将该位置后面的元素往前移动, 覆盖该元素,然后再将长度减1 #! ...

  3. 前台报错:Uncaught TypeError: Cannot read property '0' of null

    错误现象: var div1=mycss[0].style.backgroundColor;  //这一行提示360和chrome提示:Uncaught TypeError: Cannot read  ...

  4. 学习MongoDB(Troubleshoot Replica Sets) 集群排除故障

    Test Connections Between all Members(集群中节点网络测试) 在进行Mongodb集群时,每个节点的网络都需要互动,假设有3个服务器节点. m1.example.ne ...

  5. 【webssh】网页上的SSH终端

    [webssh] ——记两天来比较痛苦的历程 广义上来说,webssh泛指一种技术可以在网页上实现一个SSH终端.从而无需Xshell之类的模拟终端工具进行SSH连接,将SSH这一比较低层的操作也从C ...

  6. 奇淫怪巧之在Delphi中调用不申明函数

    前一阵子,研究了一段时间的Win32Asm,研究到后来发现Win32的ASM实际上还是和C版的介绍的一样.甚至还封装了一个简版的类似VCL库结构框架的32ASM结构库,不过搞着搞着就没兴趣了,也没继续 ...

  7. Linux-C实现GPRS模块发送短信

    “GSM模块,是将GSM射频芯片.基带处理芯片.存储器.功放器件等集成在一块线路板上,具有独立的操作系统.GSM射频处理.基带处理并提供标准接口的功能模块.GSM模块根据其提供的数据传输速率又可以分为 ...

  8. Servlet知识点回顾

    一.Servlet生命周期 服务器调用一个Servlet的8个步骤: 1.在服务器启动时,当Servlet被配置好或者被客户首次请求时,由服务器加载servlet,这一步相当于下列代码: Class ...

  9. fs项目---->cron框架的学习(一)

    Cron是一种允许您按计划执行某些内容的工具.这通常使用cron语法来完成.我们允许您在计划作业触发时执行函数.我们还允许您使用子进程执行javascript进程外部的作业.此外,这个库超出了基本的c ...

  10. cordova 插件 调用iOS社交化分享(ShareSDK:微信QQ分享)

    1.github上已有的插件:https://github.com/nwpuhmz/ShareSDKPlugin 2.安装插件 cordova plugin add https://github.co ...