决定陆陆续续写一些Numpy的例子。。

1.

如果想表示e的x次,就可以这样用,下面直接写一个sigmod函数:

def sigmoid(z):
return 1 / (1 + np.exp(-z))

2.

numpy也可以来进行矩阵运算

最简单的如下:

①、首先是一位数组之间的相乘

import random
d1 = np.arange(9)
random.shuffle(d1)
d2 = np.arange(9)
random.shuffle(d2)
print(d1,'\n',d2) #
[5 2 8 0 1 7 6 4 3]
[1 6 5 3 4 8 0 7 2]

产生两个维度一样的数组,顺便复习一下random的用法

接下来

np.dot(d1,d2)

#

也就是向量的内积

②、接下来是矩阵的相乘,先产生两个矩阵,一个2乘3,一个3乘4

d1 = np.arange(1,7).reshape(2,3)
d2 = np.arange(2,14).reshape(3,4)
print(d1,'\n','-'*10,'\n',d2)


#[[1 2 3]
[4 5 6]]
----------
[[ 2 3 4 5]
[ 6 7 8 9]
[10 11 12 13]]
np.dot(d1,d2)

#
array([[ 44,  50,  56,  62],
[ 98, 113, 128, 143]])

得到2乘4的矩阵,注意这里d1和d2的顺序一旦相反,矩阵相乘的结果也不一样了

3.

这个例子我们讲一下用pandas和numpy共同对数据进行处理

首先我们的数据是这样子的:

import os
import numpy as np
import pandas as pd
path = 'data' + os.sep + 'LogiReg_data.txt'
pdData = pd.read_csv(path, header=None, names=['Exam 1', 'Exam 2', 'Admitted'])
pdData.head()

我们需要的操作是:给数据增加一列全为1(加在第一列),然后分为X和Y两部分,其中X是一个三行100列(数据一共100个样本)的矩阵,第一列是1,第二列是Exam1,第二列是Exam2,Y是一个列向量,也就是Admitted,好了,开始操作:

pdData.insert(0, 'Ones', 1) # in a try / except structure so as not to return an error if the block si executed several times

# set X (training data) and y (target variable)
orig_data = pdData.as_matrix() # convert the Pandas representation of the data to an array useful for further computations
cols = orig_data.shape[1]
X = orig_data[:,0:cols-1]
y = orig_data[:,cols-1:cols] # convert to numpy arrays and initalize the parameter array theta
#X = np.matrix(X.values)
#y = np.matrix(data.iloc[:,3:4].values) #np.array(y.values)
theta = np.zeros([1, 3])

第一行代码就是给原数据第一列加上名称为'Ones’且值全为1的列,如果要删除,需要这样:

pdData.drop('Ones', axis=1,inplace=True #其中inplace的值为True代表对原数据进行了改动,而如果不加inpalce或者为False,则表示将删除结果作为另外的返回值,原数组没有变化

第二行代码表示将pandas的这个数据转为numpy里的数组,也就是

numpy.ndarray
第三行代码表示取数组里第二维度的大小,也就是列的大小(0是行)
接下来的代码应该不用解释了吧,看一下数据的结果:
X[:5]

#array([[ 1.        , 34.62365962, 78.02469282],
[ 1. , 30.28671077, 43.89499752],
[ 1. , 35.84740877, 72.90219803],
[ 1. , 60.18259939, 86.3085521 ],
[ 1. , 79.03273605, 75.34437644]])
y[:5]

#array([[0.],
[0.],
[0.],
[1.],
[1.]])
theta

#array([[ 0.,  0.,  0.]])

Numpy学习的更多相关文章

  1. NumPy学习笔记 三 股票价格

    NumPy学习笔记 三 股票价格 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.&l ...

  2. NumPy学习笔记 二

    NumPy学习笔记 二 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.<数学分 ...

  3. NumPy学习笔记 一

    NumPy学习笔记 一 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.<数学分 ...

  4. 数据分析之Pandas和Numpy学习笔记(持续更新)<1>

    pandas and numpy notebook        最近工作交接,整理电脑资料时看到了之前的基于Jupyter学习数据分析相关模块学习笔记.想着拿出来分享一下,可是Jupyter导出来h ...

  5. NumPy学习(索引和切片,合并,分割,copy与deep copy)

    NumPy学习(索引和切片,合并,分割,copy与deep copy) 目录 索引和切片 合并 分割 copy与deep copy 索引和切片 通过索引和切片可以访问以及修改数组元素的值 一维数组 程 ...

  6. NumPy学习(让数据处理变简单)

    NumPy学习(一) NumPy数组创建 NumPy数组属性 NumPy数学算术与算数运算 NumPy数组创建 NumPy 中定义的最重要的对象是称为 ndarray 的 N 维数组类型. 它描述相同 ...

  7. numpy 学习笔记

    numpy 学习笔记 导入 numpy 包 import numpy as np 声明 ndarray 的几种方法 方法一,从list中创建 l = [[1,2,3], [4,5,6], [7,8,9 ...

  8. numpy 学习总结

    numpy 学习总结 作者:csj更新时间:01.09 email:59888745@qq.com 说明:因内容较多,会不断更新 xxx学习总结: 回主目录:2017 年学习记录和总结 #生成数组/使 ...

  9. (转)Python数据分析之numpy学习

    原文:https://www.cnblogs.com/nxld/p/6058572.html https://morvanzhou.github.io/tutorials/data-manipulat ...

  10. Numpy学习1

    NumPy学习(1) 参考资料: http://www.cnblogs.com/zhanghaohong/p/4854858.html http://linusp.github.io/2016/02/ ...

随机推荐

  1. CSS实现16:9等比例盒子

    问题:图片的宽度100%,高度要始终自适应为16:9. 解决方案: 1.通过js程序算出绝对高度再进行设置.这是解决问题最容易想到的方法. 2.但是,我们的原则是能用css实现的功能尽量用css,这有 ...

  2. java-Freemarker TemplateLoader实现模版

    TemplateLoader的实现 作为一个模板文件加载的抽象,自然不能限制模板来自何方,在FreeMarker中由几个主要的实现类来体现,这些TemplateLoader是可以独立使用的,Webap ...

  3. grid - 网格项目对齐方式(Box Alignment)

    CSS的Box Alignment Module补充了网格项目沿着网格行或列轴对齐方式. <view class="grid"> <view class='ite ...

  4. JSONObject、JSONArray、Map、JavaBean的相互转换

    1,JSONObject json对象,就是一个键对应一个值,使用的是大括号{ },如:{key:value} 2,JSONArray json数组,使用中括号[ ],只不过数组里面的项也是json键 ...

  5. MySQL导出TSV格式文件

    可以使用mysqldump, 也可以使用mysql -e 使用mysqldump 因为要使用到 -T / --tab 参数, 需要先查看mysql设置的secure_file_priv mysql&g ...

  6. caffe可重入单例机制分析

    一个函数可重入是指该函数可以被多个线程同时调用.大多数函数都不是可重如的,因为很多函数会修改静态数据结构里的内容,如果多个线程同时调用,势必破坏共享的静态结构.可以在不改变公共接口的情况下,将一个非重 ...

  7. Bizatlk Accelerator for RosettaNet安装与配置

    以下安装步骤是基于动手实验的BizTalk开发环境(<BizTalk动手实验(一)安装BizTalk Server 2010开发环境> )进行安装. 安装准备 运行账户配置 新建IIS_W ...

  8. Android Studio系列-签名打包

    本篇博客纪录使用Android Studio对项目进行签名打包,跟Eclipse大同小异,读者朋友注意其中到差别. 第一步 创建签名文件 第二步 填写签名参数 第三步 选择构建类型 第四步 查看生成第 ...

  9. HTTP 02 HTTP1.1 协议

    发送请求: 返回时, content-type 与 HTTP 正文之间有一个空格 HTTP 是不保存状态协议, 也就是说在 HTTP 这个级别, 协议对于发送过的请求或相应都不做持久化处理. 但是, ...

  10. Smart Link

    Smart Link通过两个接口相互配合工作来实现功能.这样的一对接口组成了一个Smart Link组.为了区别一个Smart Link组中的两个接口,我们将其中的一个叫做主接口,另一个叫做从接口.同 ...