Numpy 基础学习
numpy.array()
功能:创建一个数据
vector = numpy.array([1,2,3,4])
matrix = numpy.array([1,2,3,4],[11,12,13,14])
numpy.shape
功能:查看有多少个对象在数组中
print(vector.shape)

print(matrix.shape)

numpy.genfromtxt()
功能:Load data from a text file(从txt加载数据)
文件内容示例:
ear,WHO region,Country,Beverage Types,Display Value
1986,Western Pacific,Viet Nam,Wine,0
1986,Americas,Uruguay,Other,0.5
1985,Africa,Cte d'Ivoire,Wine,1.62
...
1986,Americas,Colombia,Beer,4.27
1987,Americas,Saint Kitts and Nevis,Beer,1.98
1987,Americas,Guatemala,Other,0
1987,Africa,Mauritius,Wine,0.13
1985,Africa,Angola,Spirits,0.39
1986,Americas,Antigua and Barbuda,Spirits,1.55
读取代码
world_alcohol = numpy.genfromtxt('world_alcohol.txt',delimiter=',',dtype=str)
打印矩阵
[['Year' 'WHO region' 'Country' 'Beverage Types' 'Display Value']
['1986' 'Western Pacific' 'Viet Nam' 'Wine' '0']
['1986' 'Americas' 'Uruguay' 'Other' '0.5']
...
['1987' 'Africa' 'Malawi' 'Other' '0.75']
['1989' 'Americas' 'Bahamas' 'Wine' '1.5']
['1985' 'Africa' 'Malawi' 'Spirits' '0.31']]
help(numpy.genfromtxt)
功能:查看该方法如何使用
In>> help(numpy.genfromtxt)
Out>>

个人更推荐直接查看该方法的定义的方式来查看方法如何使用

切片操作
1.取world_alcohol的所有年份
world_alcohol[:,:1]
:代表所有,:1代表第一列,意义就是取所有行的第一列
2.取world_alcohol的第三列
world_alcohol[:,2:3]
运算 判断
先定一个矩阵
matrix = numpy.array([[1,2,3],[1,2,4],[2,2,3]])
判断矩阵中是否存在某个元素
matrix[:,]==2

返回一个数组,Flase为不匹配,True为匹配
用匹配信息进行查找
示例:查找第一列为2 的行 所在第三列的值
qe = matrix[:,0] == 2
# array([False, False, True])
matrix[qe,2]
# array([3])
运算 与
vector = numpy.array([1,2,3,4])
print((vector == 1) & (vector ==2))

print((vector == 1) & (vector >0))
# out >> [ True False False False]
运算 或
vector = numpy.array([1,2,3,4])
print((vector == 1) | (vector ==2))
# out >> [ True True False False]
类型转换
使用astype来进行类型转换
vector = numpy.array(['1','2','3'])
print(vector.dtype)
## <U1
vector = vector.astype(int)
print(vector.dtype)
## int64
矩阵转换
>>> vector = numpy.arange(15)
>>> print(vector)
[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14]
>>> matrix = vector.reshape(3,5)
>>> print(matrix)
[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]]
>>> matrix
array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14]])
ndim 维度
>>> matrix.ndim
2
matrix来自上面的矩阵转换
初始化一个矩阵
>>> numpy.zeros((3,4))
array([[0., 0., 0., 0.],
[0., 0., 0., 0.],
[0., 0., 0., 0.]])
随机
>>> numpy.random.random((2,3))
array([[0.92741381, 0.60763819, 0.62092669],
[0.0685093 , 0.31973933, 0.59478389]])
linspace 指定范围和数量的初始化
>>> numpy.linspace(1,2*numpy.pi,100)
array([1. , 1.05336551, 1.10673102, 1.16009652, 1.21346203,
1.26682754, 1.32019305, 1.37355856, 1.42692407, 1.48028957,
1.53365508, 1.58702059, 1.6403861 , 1.69375161, 1.74711711,
1.80048262, 1.85384813, 1.90721364, 1.96057915, 2.01394465,
2.06731016, 2.12067567, 2.17404118, 2.22740669, 2.2807722 ,
2.3341377 , 2.38750321, 2.44086872, 2.49423423, 2.54759974,
2.60096524, 2.65433075, 2.70769626, 2.76106177, 2.81442728,
2.86779279, 2.92115829, 2.9745238 , 3.02788931, 3.08125482,
3.13462033, 3.18798583, 3.24135134, 3.29471685, 3.34808236,
3.40144787, 3.45481338, 3.50817888, 3.56154439, 3.6149099 ,
3.66827541, 3.72164092, 3.77500642, 3.82837193, 3.88173744,
3.93510295, 3.98846846, 4.04183396, 4.09519947, 4.14856498,
4.20193049, 4.255296 , 4.30866151, 4.36202701, 4.41539252,
4.46875803, 4.52212354, 4.57548905, 4.62885455, 4.68222006,
4.73558557, 4.78895108, 4.84231659, 4.8956821 , 4.9490476 ,
5.00241311, 5.05577862, 5.10914413, 5.16250964, 5.21587514,
5.26924065, 5.32260616, 5.37597167, 5.42933718, 5.48270268,
5.53606819, 5.5894337 , 5.64279921, 5.69616472, 5.74953023,
5.80289573, 5.85626124, 5.90962675, 5.96299226, 6.01635777,
6.06972327, 6.12308878, 6.17645429, 6.2298198 , 6.28318531])
取整
>>> matrix = numpy.random.random((2,3))
>>> matrix
array([[0.80081883, 0.85121955, 0.13076995],
[0.93531681, 0.63438252, 0.72251243]])
>>> numpy.floor(matrix)
array([[0., 0., 0.],
[0., 0., 0.]])
拼接
hstack
>>> a = numpy.random.random((2,3))
>>> b = numpy.random.random((2,3))
>>> a
array([[0.95498357, 0.18999871, 0.66418543],
[0.57704126, 0.65051646, 0.29100003]])
>>> b
array([[0.1027083 , 0.02873905, 0.91481418],
[0.91912233, 0.24024705, 0.51269805]])
>>> numpy.hstack((a,b))
array([[0.95498357, 0.18999871, 0.66418543, 0.1027083 , 0.02873905,
0.91481418],
[0.57704126, 0.65051646, 0.29100003, 0.91912233, 0.24024705,
0.51269805]])
vstack
>>> a = numpy.random.random((2,3))
>>> b = numpy.random.random((2,3))
>>> a
array([[0.95498357, 0.18999871, 0.66418543],
[0.57704126, 0.65051646, 0.29100003]])
>>> b
array([[0.1027083 , 0.02873905, 0.91481418],
[0.91912233, 0.24024705, 0.51269805]])
>>> numpy.vstack((a,b))
array([[0.95498357, 0.18999871, 0.66418543],
[0.57704126, 0.65051646, 0.29100003],
[0.1027083 , 0.02873905, 0.91481418],
[0.91912233, 0.24024705, 0.51269805]])
切分
hsplit
行切割
>>> c = numpy.floor(10*numpy.random.random((2,12)))
>>> c
array([[3., 7., 9., 1., 4., 3., 3., 9., 5., 4., 9., 9.],
[3., 9., 8., 6., 7., 5., 4., 8., 1., 4., 8., 7.]])
>>> numpy.hsplit(c,3) #平均切割为3份
[array([[3., 7., 9., 1.],
[3., 9., 8., 6.]]),
array([[4., 3., 3., 9.],
[7., 5., 4., 8.]]),
array([[5., 4., 9., 9.],
[1., 4., 8., 7.]])]
>>> numpy.hsplit(c,(3,4)) #指定位置切割
[array([[3., 7., 9.],
[3., 9., 8.]]), array([[1.],
[6.]]), array([[4., 3., 3., 9., 5., 4., 9., 9.],
[7., 5., 4., 8., 1., 4., 8., 7.]])]
vsplit
列切割
>>> d = numpy.floor(10*numpy.random.random((3,12)))
array([[1., 3., 4., 6., 6., 1., 6., 7., 3., 2., 8., 0.],
[7., 0., 0., 1., 5., 2., 6., 8., 0., 3., 3., 4.],
[3., 8., 7., 0., 7., 9., 1., 6., 7., 4., 6., 1.]])
>>> numpy.vsplit(d,3) # 平均切割为3份
[array([[1., 3., 4., 6., 6., 1., 6., 7., 3., 2., 8., 0.]]),
array([[7., 0., 0., 1., 5., 2., 6., 8., 0., 3., 3., 4.]]),
array([[3., 8., 7., 0., 7., 9., 1., 6., 7., 4., 6., 1.]])]
深拷贝和浅拷贝
赋值
完全相同的对象
>>> a = numpy.arange(12)
>>> a
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])
>>> b= a
>>> b
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])
>>> print(b is a)
True
浅拷贝
对象不同,但引用的值相同
>>> c = a.view()
>>> print(c is a)
False
>>> c.shape = (2,6)
>>> a.shape
(12,)
>>> a[0]=1
>>> a
array([ 1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])
>>> c
array([[ 1, 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10, 11]])
深拷贝
完全不同的两个对象
>>> d = a.copy()
>>> d is a
False
>>> a
array([ 1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])
>>> d
array([ 1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])
>>> d.shape=(2,6)
>>> d
array([[ 1, 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10, 11]])
>>> d[0,0]=0
>>> d
array([[ 0, 1, 2, 3, 4, 5],
Numpy 基础学习的更多相关文章
- Numpy基础学习与总结
Numpy类型学习 1.数组的表示 import numpy as np In [2]: #numpy核心是高维数组,库中的ndarray支持多维数组,同时提供了数值运算,可对向量矩阵进行运算 In ...
- Python 读取UCI iris数据集分析、numpy基础学习
python基础.numpy使用.io读取数据集.数据处理转换与简单分析.读取UCI iris数据集中鸢尾花的萼片.花瓣长度数据,进行数据清理,去重,排序,并求出和.累积和.均值.标准差.方差.最大值 ...
- Numpy基础学习
Numpy(Numerical Python的简称)是高性能科学计算和数据分析的基础包. 主要的功能: 1.ndarray,一个具有矢量运算和复杂广播工能的快速且节省空间的多维数组 2.用于对整组数据 ...
- [学习笔记] Numpy基础 系统学习
[学习笔记] Numpy基础 上专业选修<数据分析程序设计>课程,老师串讲了Numpy基础,边听边用jupyter敲了下--理解+笔记. 老师讲的很全很系统,有些点没有记录,在PPT里就不 ...
- 【学习笔记】 第04章 NumPy基础:数组和矢量计算
前言 正式开始学习Numpy,参考用书是<用Python进行数据清洗>,计划本周五之前把本书读完,关键代码全部实现一遍 NumPy基础:数组和矢量计算 按照书中所示,要搞明白具体的性能差距 ...
- 18-09-21 numpy 的基础学习01
# 1关于numpy 的学习import numpy as np # 一 如何创建数组****# 1 有规律的一维数据的创建======# 1 range() 和arange() 区别 貌似没有区别l ...
- python学习笔记(三):numpy基础
Counter函数可以对列表中数据进行统计每一个有多少种 most_common(10)可以提取前十位 from collections import Counter a = ['q','q','w' ...
- Day1 Python基础学习
一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编写程序,本质仍然是直接操作 ...
- numpy 基础操作
Numpy 基础操作¶ 以numpy的基本数据例子来学习numpy基本数据处理方法 主要内容有: 创建数组 数组维度转换 数据选区和切片 数组数据计算 随机数 数据合并 数据统计计算 In [1]: ...
随机推荐
- CSS空心圆
CSS代码:改变border的大小控制空心的大小 div { width: 100px; height: 100px; background: #ffffff; border-radius: 50%; ...
- python3 通过邮件发送测试报告
通过之前的学习,了解到了如何利用excel进行读取数据,如何采用DDT数据驱动,如何使用unittest.下面是将之前所学进行结合,并发送邮件-->leader,废话不多说,上代码: email ...
- PHP调用微博接口实现微博登录的方法示例
在平时项目开发过程中,除了注册本网站账号进行登录之外,还可以调用第三方接口进行登录网站.这里以微博登录为例.微博登录包括身份认证.用户关系以及内容传播.允许用户使用微博帐号登录访问第三方网站,分享内容 ...
- MFC实现红黑砖块
MFC实现红黑砖块 题目 老题目了,给定w,h长宽的图,上面有颜色不同的瓷砖,黑和红,问从给的起点出发,只能走黑色瓷砖,能走多少块,可视化输出过程 思路 咋一看搜索水题,但是要用可视化,要用模板类,, ...
- python:os.path模块常用方法
os.path模块主要用于文件的属性获取,在编程中经常用到,以下是该模块的几种常用方法.更多的方法可以去查看官方文档:http://docs.python.org/library/os.path.ht ...
- Kubernetes1.7—DNS安装
虽然通过了Service解决了Pod重建后IP动态变化(服务发现).负载均衡问题,但使用Service还是要需要知道CLUSTER-IP,而通过NDS可以解决该问题:在Kubernetes集群中可通过 ...
- today-Extension widget 扩展开发
设置UI部分的展开和收起
- SpringMVC+Mybatis+MySQL8遇到的问题
搭建SpringMVC+Mybatis+MySQL8过程中遇到的坑. 1.数据库驱动要使用新版本,我的和mysql保持一致. 查看mysql版本:MySQL\bin>mysql -V 配置对应版 ...
- vue 组件传值
父组件传值给子组件 <list v-show="listLen" :listdata="list" :tipMsg="tipMsg" ...
- QEMU KVM Libvirt手册(10): KVM的各种限制
Overcommits KVM allows for both memory and disk space overcommit. However, hard errors resulting fro ...