NumPy初学者(day one)

NumPy是Python中的科学计算的核心库,它提供了一个高性能的多维数组对象,以及处理这些对象的工具
下面让我们来看一下NumPy中的数组
NumPy中的数组是一个值的网格,所有类型都一样,并由非负整数的元组作为索引,维数是数组的排名(dimensions)
数组的形状是一个整数元组,给出了每个维度的数组的大小。

import numpy as np

a = np.array([1,2,3])
print(type(a)) #打印 class 'numpy.ndarray'
print(a.shape) #打印 3
print(a[0],a[1],a[2]) #打印 1 2 3
a[5] = 0
print(a) #打印 [0,1,2]

b = np.array([1,2,3],[4,5,6])
print(b.shape) #打印 (2,3)
print(b[0,0],b[0,1],b[2,2]) #打印 1 2 6

NumPy还提供了许多创建数组的方法

import numpy as np

a = np.zeros((2,2)) #创建了一个全是02*2数组
print(a) # 打印  [[0,0]
        #       [0,0]]

b = np.ones((1,2)) #创建了一个全是11*2数组
print(b) #打印 [1,1]

c= np.full((2,2),7) #创建了一个全是72*2的数组
print(c) #打印  [[7,7]
        #       [7,7]]

d = np.eye((2,2)) #创建一个全是102*2数组
print(d) #打印  [[1,0]
            #   [0,1]]

e = np.random.random((2,2)) #创建一个由随机数组成的2*2数组
print(e) #打印 [[0.91940167  0.08143941]
        #       [0.68744134  0.87236687]]

同时,为了方便访问数组,NumPy还提供了几种数组索引的方法

import numpy as np 

a = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]]) #创建一个3*4的数组

b = a[:2, 1:3] #b是一个切片切出来的数组 第一个参数是几行,也就是几维,后面的参数是一个取值范围,
                #是一个左开右闭区间
                #所以b数组的值为 [[2,3]      
                #               [6,7]] 下面的列数更着上面的走
print(a[0,1]) #打印 2
b[0,0]=77
print(a[0,1]) #打印 77

说实话,这个修改切出来的数组的值,可以直接作用到原数组确实让我有些吃惊,接着往下说
你还可以将整数索引和切片索引混合使用,但是这会产生比原始数组更低级别的数组

a = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]]) #创建一个3*4的数组
#行
row_r1 = a[1,:] # Rank 1 view of the second row of a  将整数索引与切片混合,得到一个较低等级的数组,
row_r2 = a[1:2,:] # Rank 2 view of the second row of a 仅使用切片时产生一个与...相同等级的数组
print(row_r1,row_r1.shape)  #打印 [5,6,7,8] (4,)
print(row_r2,row_r2.shape) #打印 [[5,6,7,8]] (1,4)
#列
col_r1 = a[:,1]
col_r2 = a[:,1:2]
print(col_r1,col_r1.shape) #打印 [2,6,10] (3,)
print(col_r2,col_r2.shape) #打印 [[2]
                            #    [6]
                            #    [10]] (3,1)

好了,今天就到这里了
心得,NumPy作为Python下的库,却是提供了许多实用的方法,比如快速创建内容全都是一样的数组,以及切片切出来
的数组竟然可以直接作用于原数组,让我大吃一惊。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值