#起别名避免重名
import numpy as np #小技巧:print从外往内看==shape从左往右看 if __name__ == "__main__": print('numpy版本号 {}'.format(np.version.version)) n_1 = np.array([1,2,3])
print('\n{} \n{} 维数组 \n{} 形状包含元素个数'.format(n_1, n_1.ndim, n_1.shape)) n_2 = np.array([[1,2,3],[4,5,6]])
print('\n{} \n{} 维数组 \n{} 形状包含行数、列数'.format(n_2, n_2.ndim, n_2.shape)) n_3 = np.array([[[1,2,3],[4,5,6],[7,8,9]]])
print('\n{} \n{} 维数组 \n{} 形状包含2维数组个数、行数、列数'.format(n_3, n_3.ndim, n_3.shape)) print("\n使用size()方法来打印多维数组的元素个数")
print(np.size(n_1))
print(np.size(n_2))
print(np.size(n_3)) print("\n <class 'list'>对比数据类型<class 'numpy.ndarray'>")
print(type([1,2,3]))
print(type(n_1)) print("\n 内置dtype属性来打印多维度数组的元素类型")
print(type(123))
print(n_1.dtype) print("\n itemsize属性,来打印多维数组中的数据所占字节大小")
print(n_1.itemsize, n_2.itemsize, n_3.itemsize) print("\n data属性,用来打印数据缓冲区--buffer---/也就是内存地址/")
print(n_1.data, n_2.data, n_3.data) #使用reshape()方法,根据形状反向生成多维数组
n_3 = np.array(range(24)).reshape((3,2,4)) #3个二维数组,每个2行,4列
print('\n',n_3) #使用浮点--元素类型
n_float = np.array([1.0, 2.0, 3.0])
print('\n',n_float.dtype) #float64 #使用字符串-元素类型
n_str = np.array(['','',''])
print(n_str.dtype) #<U1 #使用整形--元素类型
n_int = np.array(range(20))
print(n_int.dtype) #int32 #正向
n_4 = np.array([[[list(range(5)),list(range(5,10)),list(range(10,15))]]])
print(n_4)
print('* '*50) #反向
n_4 = np.array(range(20)).reshape((2,1,2,5))
print(n_4)
print('* '*50) n_3 = np.array(range(20)).reshape((2,2,5))
print(n_3)
print('* '*50) #随机数
n0 = np.random.randint(0,100)
print("\n{}的类型是{}".format(n0,type(n0)))
n1 = np.random.rand()
print("{}的类型是{}".format(n1,type(n1)))
n2 = np.random.randn()
print("{}的类型是{}".format(n2,type(n2)))
n3 = np.random.random_sample(10)
print("{}的类型是{}".format(n3,type(n3)))
#导入科学计算库
import numpy as np #元素为1的多维数组
nlist_ones = np.ones((4,4))
print(nlist_ones)
print(nlist_ones.dtype) #元素float64 #元素为0的多维数组
nlist_zeros = np.zeros((4,4))
print(nlist_zeros) #使用empty方法来生成随机多维数组,使用第二个参数指定元素类型
nlist_empty = np.empty((5,5),dtype=np.int)
print(nlist_empty)
print(nlist_empty.dtype) #int32 # asarray把普通list转换为数组
x = [1,2,3]
print(type(x))
nlist = np.asarray(x)
print(type(nlist))
print(nlist) #frombuffer把字符串(buffer内存地址)字节切片来生成多维数组
#b强转byte字节
my_str = b'Hello World'
nlist_str = np.frombuffer(my_str,dtype='S1')
print(nlist_str) # 数组运算
# axis属性指定行或列,keepdims保持之前维度
x = np.array([[1,2],[3,4]])
print(x)
sum0 = np.sum(x,axis = 0,keepdims=True) #axis = 0/行级/
print(sum0)
sum1 = np.sum(x,axis=1,keepdims=True) #axis = 1/列级/
print(sum1) #多维数组赋值
x = np.array([1,2])
x[1] = 3
print(x)
y = x.copy()
y[0] = 3
print(x) #维度级的运算
a = np.array([[1,2],[3,4],[5,6]])
b = np.array([[11,22],[33,44],[55,66]])
#vstack()方法---维度一样--- vertical垂直合并
suma = np.vstack((a,b))
print(suma)
#hstack()方法---维度一样--- 横向连纵
sumb = np.hstack((a,b))
print(sumb) #多维数组调用
nl = np.array([[1,2],[3,4],[5,6]])
# 取子数据
print(nl[[2]])
# 取元素
print(nl[0][0])
print(nl[0,0])
# 元素赋值
nl[1,1] = 44
print(nl)
#调换子数据位置
print(nl[[2,1,0]]) #删除方法 delete
#删除nlist第二行
print(np.delete(nl,1,axis=0))
print(np.delete(nl,0,axis=1)) #范围区间差 = 形状数的乘积
a = np.arange(1,5).reshape((2,2))
b = np.arange(3,7).reshape((2,2))
print(a)
print(b) # 1、创建一个长度为10的一维全为0的多维数组,然后让第5个元素等于1
ll = np.zeros((10,))
print(ll)
print(ll.ndim)
print(ll.size)
ll[4] = 1
print(ll) q1 = np.zeros(shape=10)
print(q1)
q1[4] = 1
print(q1) # 2、创建一个每一行都是从0到4的5*5矩阵
list_5 = np.array([[range(5)]*5])
print(list_5)
l_2 = np.array([range(5)]*5).reshape(5,5)
print(l_2) # 3、假如给定一个3*3的二维数组,如何交换其中两行的元素?
vv0 = np.random.randint(0,100,size=(2,2))
print(vv0)
print(vv0[[1,0]]) # 4、假如给定一个3*3的二维数组,如何交换其中两行的元素?
vv = np.random.randint(0,100,size=(3,3))
print(vv)
print(vv[[1,0,2]])
print(vv[[2,0,1]])
print(vv[[0,2,1]]) # 5、原数组为一维数组,内容为从 0 到 100,抽取出所有偶数。
mm = np.arange(0,101).reshape(101,) print(mm[::2]) mm = filter(lambda x:x%2==0, mm)
print(np.array(list(mm))) # 用数组运算
mm = np.array(range(101))
print(mm)
mm = mm[mm % 2 == 0]
print(mm)

  

 

numpy科学计算库的基础用法,完美抽象多维数组(原创)的更多相关文章

  1. python科学计算库的numpy基础知识,完美抽象多维数组(原创)

    #导入科学计算库 #起别名避免重名 import numpy as np #小技巧:从外往内看==从左往右看 从内往外看==从右往左看 #打印版本号 print(np.version.version) ...

  2. Numpy科学计算

    NumPy介绍   NumPy(Numerical Python)是一个开源的Python科学计算库,用于快速处理任意维度的数组. NumPy支持常见的数组和矩阵操作.对于同样的数值计算任务,使用Nu ...

  3. python安装numpy科学计算模块

    解决两个问题: (1)Import Error: No module named numpy (2)Python version 2.7 required, which was not found i ...

  4. 科学计算库Numpy基础&提升(理解+重要函数讲解)

    Intro 对于同样的数值计算任务,使用numpy比直接编写python代码实现 优点: 代码更简洁: numpy直接以数组.矩阵为粒度计算并且支持大量的数学函数,而python需要用for循环从底层 ...

  5. python科学计算库numpy和绘图库PIL的结合,素描图片(原创)

    # 导入绘图库 from PIL import Image #导入科学计算库 import numpy as np #封装一个图像处理工具类 class TestNumpy(object): def ...

  6. Python科学计算库Numpy

    Python科学计算库Numpy NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库. 1.简 ...

  7. SciPy - 科学计算库(上)

    SciPy - 科学计算库(上) 一.实验说明 SciPy 库建立在 Numpy 库之上,提供了大量科学算法,主要包括这些主题: 特殊函数 (scipy.special) 积分 (scipy.inte ...

  8. Python科学计算库

    Python科学计算库 一.numpy库和matplotlib库的学习 (1)numpy库介绍:科学计算包,支持N维数组运算.处理大型矩阵.成熟的广播函数库.矢量运算.线性代数.傅里叶变换.随机数生成 ...

  9. ubuntu14.04 下安装 gsl 科学计算库

    GSL(GNU Scientific Library)作为三大科学计算库之一,除了涵盖基本的线性代数,微分方程,积分,随机数,组合数,方程求根,多项式求根,排序等,还有模拟退火,快速傅里叶变换,小波, ...

随机推荐

  1. sklearn中的Pipeline

    在将sklearn中的模型持久化时,使用sklearn.pipeline.Pipeline(steps, memory=None)将各个步骤串联起来可以很方便地保存模型. 例如,首先对数据进行了PCA ...

  2. 【重学计算机】计组D2章:数据表示

    1.基本概念 真值:+0101,-0100:机器数: [x]原=0101 2.几种机器数 原码:x = -0101,[x]原 = 1101 反码:x = -0101,[x]反 = 1010 补码:x ...

  3. NavigationViewDemo【和DrawerLayout搭配使用实现侧滑导航视图界面】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 主要记录NavigationView的使用,而一般情况下NavigationView是和DrawerLayout搭配使用的,还有To ...

  4. Python:鲜为人知的功能特性(下)

    GitHub 上有一个名为<What the f*ck Python!>的项目,这个有趣的项目意在收集 Python 中那些难以理解和反人类直觉的例子以及鲜为人知的功能特性,并尝试讨论这些 ...

  5. Linux网络相关概念和修改IP地址的方法

    2.1.1  网卡的命名规则 CENTOS6的网卡命名方式:它会根据情况有所改变而非唯一且固定,在CENTOS6之前,网络接口使用连续号码命名: eth0. eth1等,当增加或删除网卡时,名称可能会 ...

  6. SpringBoot打包项目成war包,并部署到服务器的tomcat上

    最近遇到项目需要上线部署到服务器,需要讲自己的SpringBoot项目打包成war包,部署到tomcat上. 下面记录下打包部署的过程. (1) 将SpringBoot项目打包成war包, 一.修改打 ...

  7. Python二级-----------程序冲刺2

    1. 编写 Python 程序输出一个具有如下风格效果的文本,用作文本进度条样式,部分代码如下,填写空格处.‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬ ...

  8. Spring Boot 入门(五):集成 AOP 进行日志管理

    本篇文章是接着 Spring boot 入门(四):集成 Shiro 实现登陆认证和权限管理写的,按照前面几篇博客的教程,可以搭建一个简单的项目,主要包含了 Pagehelper+MyBatis 分页 ...

  9. cesium 之地图显示坐标、比例尺、海拔高度效果篇(附源码下载)

    前言 cesium 官网的api文档介绍地址cesium官网api,里面详细的介绍 cesium 各个类的介绍,还有就是在线例子:cesium 官网在线例子,这个也是学习 cesium 的好素材. 内 ...

  10. 【AO笔记】关于创建IFeatureClass中的参考系设置——不能为null也不能为IUnknownCoodinateSystem

    创建一个要素类是很简单的,只需要获取一枚IFeatureWorkspace或者一个IFeatureDataset,然后调用其CreateFeatureClass()即可. 这个CreateFeatur ...