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. vue条件与循环

    通过vue控制切换一个元素的显示也相当简单: <div id="app-3"> <p v-if="seen">Now you see m ...

  2. Java知多少(23)类的基本运行顺序

    我们以下面的类来说明一个基本的 Java 类的运行顺序: public class Demo{ private String name; private int age; public Demo(){ ...

  3. SPARKR,对RDD操作的介绍

    (转载)SPARKR,对RDD操作的介绍   原以为,用sparkR不能做map操作, 搜了搜发现可以. lapply等同于map, 但是不能操作spark RDD. spark2.0以后, spar ...

  4. 使用grep查找字符串

    如下: grep -r 'target string' --exclude='pattern' dir/ 例子: grep -r Debug --exclude='*.js' ./ 查找本目录下除了j ...

  5. 巧妙解决windows下 copy命令不接受太长路径的问题

    今天遇到了写的bat文件中执行xcopy成功,但是部分文件丢失的问题,查看日志,发现很多提示 : “the system can not find the path specified.“ 但是去指定 ...

  6. [Object Tracking] How to learn Active contour model - Snake Model

    常见四种跟踪的思路: 区域:人体肢体识别.跟踪 模型:人体面部识别.跟踪 特征:摄像头3D定位 主动轮廓:(蛇模型属于这er,数学基础<图像处理的偏微分方程方法>,也是最流行的一个目前) ...

  7. 《objective-c基础教程》学习笔记(四)—— OC面向对象编程初探

    在上篇博文中,我们编写了一个可以输出不同几何类型的小程序.通过C语言的struct结构体,给大家感受了下,对象的大概样子. 如果用Obejctive-C的面向对象的特征来实现.那么,drawShape ...

  8. Git-简单的利用SourceTree提交代码

    解决办法: 小编也是新手,所以在使用SourceTree上面花了不少时间,好在简单的拉去远程代码,同步本地仓库代码搞定了.下面是步骤: 1.我们先去下载一个SourceTree然后打开. 2.下一步, ...

  9. Linux内核 GPIO操作部分API

    内核中关于GPIO的操作API主要集中在<linux/of_gpio.h>和<linux/gpio.h>中,前者主要是GPIO直接与设备树相关的操作,在Linux 设备树操作A ...

  10. scala 模式匹配详解 3 模式匹配的核心功能是解构

    http://www.artima.com/scalazine/articles/pattern_matching.html这篇文章是odersky谈scala中的模式匹配的一段对话,我做了部分片段翻 ...