2.科学计算工具Numpy

1.numpy简介

Numpy:提供了一个在Python中做科学计算的基础库,重在数值计算,主要用于多维数组(矩阵)处理的库。
用来存储和处理大型矩阵,比Python自身的嵌套列表结构要高效的多。
本身是由C语言开发,是个很基础的扩展,Python其余的科学计算扩展大部分都是以此为基础。
高性能科学计算和数据分析的基础包
ndarray,多维数组(矩阵),具有矢量运算能力,快速、节省空间

2.ndarray数组创建

NumPy数组是一个多维的数组对象(矩阵),称为ndarray,具有矢量算术运算能力,并具有执行速度快和节省空间的特点。
注意:ndarray的下标从0开始,且数组里的所有元素必须是相同类型

2.1ndarray属性

ndim属性:维度个数
shape属性:维度大小
dtype属性:数据类型

2.2ndarray的随机创建

通过随机抽样 (numpy.random) 生成随机数据。

np.random.rand()

随机样本位于[0, 1)中,rand固定区间0.0 ~ 1.0

arr1 = np.random.rand(3,4) # 3*4,0-1
print(arr1)
a = 3
print(arr1.ndim) # 维数
print(arr1.shape) # 维度大小
print(arr1.dtype) # 数据类型
######################运行结果#########################
[[ 0.8304427   0.28691753  0.49540239  0.81833986]
 [ 0.67167216  0.07743172  0.02851783  0.1204921 ]
 [ 0.21615523  0.88841313  0.06086932  0.0161961 ]]
2
(3, 4)
float64
#####################################################
np.random.randn()

随机样本是从标准正态分布中返回一个或多个样本值。

arr2 = np.random.randn(3,4,5)
print(arr2)
print(arr2.ndim)
print(arr2.shape)
###########################运行结果##############################
[[[-0.53048525 -0.98315123  1.07899734  1.00916922 -1.43343381]
  [ 0.16614765 -2.04573639  0.69389559 -1.03237277  0.55933928]
  [-1.83031415 -1.06860538  0.54219642 -1.07381001  0.04935296]
  [ 0.23682127 -0.31775132 -0.00994159 -0.20292605  1.30770046]]

 [[ 0.10626402  1.01778731 -1.53680091  0.76804688  0.27078436]
  [-0.43091204  1.47209429  0.80118083 -2.0614604  -0.5506007 ]
  [ 1.44773308 -2.14104747 -0.95519316 -0.83441982 -0.31901006]
  [ 0.10257071 -0.42335524 -0.01249585 -1.47530282 -1.1789874 ]]

 [[ 0.27786974 -0.93659983  0.44406388  0.01835018  1.11760644]
  [ 1.68107332 -1.88498173  0.69610999  1.4677356   2.95709668]
  [-2.16621502  1.09556328 -0.5359436   2.01755611 -1.00161595]
  [ 0.41419144 -0.74623465  0.13370128 -0.01935085 -1.03277491]]]
3
(3, 4, 5)
#################################################################
np.random.randint()方法使用

生成指定维度大小(3行4列)的随机多维整型数据(二维),randint指定区间-2 ~ 5

arr3 = np.random.randint(-2,6,(3,4))
print(arr3)
print(arr3.dtype)
#######################运行结果##########################
[[ 0  1  5  3]
 [ 4  0  1  4]
 [ 0 -2  5  1]]
int32
#########################################################
np.random. uniform()方法使用

生成指定维度大小(4行5列)的随机多维浮点型数据(二维),uniform()可以指定区间(-3, 2)

# 随机创建浮点类型的ndarray
arr4 = np.random.uniform(-3,3,size=(4,5))
print(arr4)
print(arr4.dtype)
##########################运行结果#############################
[[ 0.39471789  1.80044462 -1.2432487   2.72737276  0.63235806]
 [-1.15296166 -2.43829749 -1.6658063  -0.144205    0.04610753]
 [ 0.32108255 -2.77588426 -1.50920274  0.24233935  2.67571127]
 [ 1.06973439 -0.4995566   2.79207931 -1.14324029 -2.48195469]]
float64
###############################################################

2.3 ndarray的序列创建

np.zeros()

指定大小的全0数组。注意:第一个参数是元组,用来指定大小,如(3, 4)。

print(np.zeros((3,4)))
print(np.zeros((3,4)).dtype)
print(type(np.zeros((3,4))))
##########################运行结果#############################
[[ 0.  0.  0.  0.]
 [ 0.  0.  0.  0.]
 [ 0.  0.  0.  0.]]
float64
<class 'numpy.ndarray'>
###############################################################
np.ones()

指定大小的全1数组。注意:第一个参数是元组,用来指定大小,如(3, 5)。

print(np.ones((3,5)))
##########################运行结果#############################
[[ 1.  1.  1.  1.  1.]
 [ 1.  1.  1.  1.  1.]
 [ 1.  1.  1.  1.  1.]]
###############################################################
np.empty()

初始化数组,不是总是返回全0,有时返回的是未初始的随机值(内存里的随机值)。

print(np.empty((4,5)))
##########################运行结果#############################
[[ 0.39471789  1.80044462  1.2432487   2.72737276  0.63235806]
 [ 1.15296166  2.43829749  1.6658063   0.144205    0.04610753]
 [ 0.32108255  2.77588426  1.50920274  0.24233935  2.67571127]
 [ 1.06973439  0.4995566   2.79207931  1.14324029  2.48195469]]
###############################################################
ndarray的序列创建
arr8 = np.arange(15) # 创建一个一维数组
print(arr8)
##########################运行结果#############################
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14]
###############################################################
arr9 = arr8.reshape(3,5) # 创建3行5列数组
print(arr9)
##########################运行结果#############################
[[ 0  1  2  3  4]
 [ 5  6  7  8  9]
 [10 11 12 13 14]]
###############################################################

2.4 dtype参数

arr12 = np.zeros((3,5),dtype=np.int64)
print(arr12)
print(arr12.dtype)
##########################运行结果#############################
[[0 0 0 0 0]
 [0 0 0 0 0]
 [0 0 0 0 0]]
int64
###############################################################

2.5 数组数据类型的转换astype()

arr13 = arr12.astype(np.float32)
print(arr13)
print(arr13.dtype)
##########################运行结果#############################
[[ 0.  0.  0.  0.  0.]
 [ 0.  0.  0.  0.  0.]
 [ 0.  0.  0.  0.  0.]]
float32
###############################################################
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,386评论 6 479
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,939评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,851评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,953评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,971评论 5 369
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,784评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,126评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,765评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,148评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,744评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,858评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,479评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,080评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,053评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,278评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,245评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,590评论 2 343

推荐阅读更多精彩内容