python

超轻量级php框架startmvc

Python3.5基础之NumPy模块的使用图文与实例详解

更新时间:2020-07-01 05:24:01 作者:startmvc
本文实例讲述了Python3.5基础之NumPy模块的使用。分享给大家供大家参考,具体如下:1、简介

本文实例讲述了Python3.5基础之NumPy模块的使用。分享给大家供大家参考,具体如下:

1、简介

2、多维数组——ndarray


#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:ZhengzhengLiu

import 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,步长为1
np1 = np.arange(10)
print(np1)

#两个参数(起始值,终止值),区间左闭右开,默认步长为1
np2 = np.arange(2,10)
print(np2)

#三个参数(起始值,终止值,步长),区间左闭右开,步长为2
np3 = 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维度: 1 n1元素类型: int32 n1数组形状: (4,) n1数组元素总个数: 4 [[1 2 3 4]  [5 6 7 8]] n2维度: 2 n2元素类型: 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] = 50
print(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]]

Numpy基本操作说明

Python3.5 NumPy模块