Python3.5基础——NumPy模块的使用(上)

来源:互联网 发布:python ftp 传输模式 编辑:程序博客网 时间:2024/06/04 18:09

1、简介





2、多维数组——ndarray















#!/usr/bin/env python# -*- coding:utf-8 -*-# Author:ZhengzhengLiuimport numpy as np#1.创建ndarray#创建一维数组n1 = np.array([1,2,3,4])print(n1)#属性--ndim:维度;dtype:元素类型;shape:数组形状;# size:数组元素总个数,shape值相乘得到print("n1维度:",n1.ndim)print("n1元素类型:",n1.dtype)print("n1数组形状:",n1.shape)print("n1数组元素总个数:",n1.size)#创建二维数组n2 = np.array([    [1,2,3,4],    [5,6,7,8]])print(n2)print("n2维度:",n2.ndim)print("n2元素类型:",n2.dtype)#创建三维数组n3 = np.array([    [        [1,2,3,4],        [5,6,7,8]    ],    [        [10,20,30,40],        [50,60,70,80]    ]])print(n3)print("n3数组形状:",n3.shape)print("n3数组元素总个数:",n3.size)#2.通过函数创建数组z = np.zeros((3,2))     #创建指定形状的数组,数值由零填充print(z)print(z.dtype)o = np.ones((2,4))      #创建指定形状的数组,数值由1填充print(o)e = np.empty((2,3,2))   #创建指定形状的数组,数值由未初始化的垃圾值填充print(e)#3.通过函数计算的方式去创建数组#一个参数,区间左闭右开,默认起始值为0,步长为1np1 = np.arange(10)print(np1)#两个参数(起始值,终止值),区间左闭右开,默认步长为1np2 = np.arange(2,10)print(np2)#三个参数(起始值,终止值,步长),区间左闭右开,步长为2np3 = np.arange(2,10,2)print(np3)#倒序创建数组元素np4 = np.arange(10,2,-1)print(np4)#全闭区间,参数(起始值,终止值,元素个数),等差数列np5 = np.linspace(0,10,5)print(np5)#全闭区间,以10为底数参数为指数(起始值,终止值,元素个数),等比数列np6 = np.logspace(0,2,5)print(np6)#生成随机数的数组np7 = np.random.random((2,3))print(np7)#运行结果:[1 2 3 4]n1维度: 1n1元素类型: int32n1数组形状: (4,)n1数组元素总个数: 4[[1 2 3 4] [5 6 7 8]]n2维度: 2n2元素类型: int32[[[ 1  2  3  4]  [ 5  6  7  8]] [[10 20 30 40]  [50 60 70 80]]]n3数组形状: (2, 2, 4)n3数组元素总个数: 16[[ 0.  0.] [ 0.  0.] [ 0.  0.]]float64[[ 1.  1.  1.  1.] [ 1.  1.  1.  1.]][[[  1.02548961e-305   5.40165714e-067]  [  1.05952696e-153   9.69380992e+141]  [  2.17151199e+214   4.34975848e-114]] [[  2.08064175e-115   1.91431714e+227]  [  6.42897811e-109   1.26088822e+232]  [  9.51634286e-114   5.45764552e-306]]][0 1 2 3 4 5 6 7 8 9][2 3 4 5 6 7 8 9][2 4 6 8][10  9  8  7  6  5  4  3][  0.    2.5   5.    7.5  10. ][   1.            3.16227766   10.           31.6227766   100.        ][[ 0.55980469  0.99477652  0.82310732] [ 0.97239333  0.1409895   0.57213264]]

#修改ndarray形状np8 = np.arange(0,20,2)print(np8)print(np8.size)np9 = np8.reshape(2,5)print(np9)print(np9.size)#reshape函数是对被修改数组的一个拷贝,共享同一内存,# 修改其中一个数组会影响里一个np9[1][2] = 50print(np8)print(np9)# -1表示第二维自动根据元素个数计算np10 = np8.reshape(5,-1)print(np10)#shape直接修改原来数组的形状np8.shape=(2,-1)print(np8)#运行结果:[ 0  2  4  6  8 10 12 14 16 18]10[[ 0  2  4  6  8] [10 12 14 16 18]]10[ 0  2  4  6  8 10 12 50 16 18][[ 0  2  4  6  8] [10 12 50 16 18]][[ 0  2] [ 4  6] [ 8 10] [12 50] [16 18]][[ 0  2  4  6  8] [10 12 50 16 18]]



原创粉丝点击