首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Numpy学习笔记

一、概要

Numpy是Python的一个科学计算的库,提供了矩阵运算的功能,NumPy数组是一个多维数组对象,称为ndarray,其中:

NumPy数组的下标从0开始。

同一个NumPy数组中所有元素的类型必须是相同的。如int,str,float

二、数组结构——ndarray的基本属性操作

加减乘除

importnumpyasnp

array_list = [1,2,3,4,5]

array = np.array(array_list)

print(array+1)

=====》》[2 3 4 5 6]

基本用法

#矩阵多维格式

tan_array = np.array([[1,2],

[3,4],

[4,5]])

print(tan_array.shape)#几行几列 ====》(3 2)

print(tan_array.size)#个数 ====》6

print(tan_array.ndim)#几维 =====》2

取数据(切片,同python一样)

print(tan_array[2,1])#取矩阵中的数据 ----> 5

tan_array[1,1] =10

print(tan_array)#赋值 -----> [[1 2] [3 10] [4 5]]

print(tan_array[1])#取第一行的数据 ----> [3 10]

print(tan_array[:,1])#取第几列的数据 ----->[2 10 5]

print(tan_array[,:2])#取某一行前两个数据 [1 2]

ndarray赋值

array1= np.array([1,2,3])

array2 =array1

array2[1] =100

print(array2)

print(array1)

========》[ 1 100 3]

========》[ 1 100 3]

修改了array2,没有修改array1,可是array1也会跟着改变,所以为了避免这种情况,使用

array2= array1.copy()

运行后就发现

array2 =======》 [ 1 100 3]

array1 =======》 [1 2 3]

抽取想要的数据

ndarray有arange、random等模块,可以生成一个array

number_list = np.arange(0, 100, 10)

print(number_list)

print(number_list[np.where(number_list>50)])

=====》 [ 0 10 20 30 40 50 60 70 80 90]

=====》 [60 70 80 90 ]

首先生成一个等差数列,然后通过np.where获取到number_list中大于50的数字所在ndarray中的位置,通过切片取值的方法得到想要

三、数值运算

2018.4.19更新

四、数组生成方法(输出后看着像是列表其实类型是)

1. 直接生成

a = np.array([1,3,4,6,7,8])

[1 3 4 6 7 8]

b = np.array([[1,2],[6,7],[9,5]])

[[1 2]

[6 7]

[9 5]]

2.内置方法生成

c = np.arange(10) #生成10以内的数组 or np.arrange(0,9)

[0 1 2 3 4 5 6 7 8 9]

d = np.arange(,9).reshape(3,3)#重新设定创建数组的维度-3行3列

[[0 1 2]

[3 4 5]

[6 7 8]]

e = np.linspace(,10,10) #生成数组:0-100之间10个数

[ 0. 11.11111111 22.22222222 33.33333333 44.44444444

55.55555556 66.66666667 77.7777777888.88888889 100. ]

3.nump.random函数生成

#所有的值都是从到1,三行两列

print(np.random.rand(3,2))

#矩阵的shape值-几行几列,0-10以内的数组

print(np.random.randint(10,size=(5,4)))

print(np.random.randint(,10,(3,3)))

#0-10之间选择3个数

print(np.random.randint(,10,3))

#返回一个0-1的随机浮点数

print(np.random.random_sample())

print(np.random.random())

print(np.random.random(3,3)) #随机生成3行3列的数组(0-1大小)

print(np.random.sample())

#生成一个0-100以内的浮点数

print(np.random.uniform(,100))

4.通过初始化方法生成

f = np.zeros(4) #0初始化一个数组

[ 0. 0. 0. 0.]

f.fill(9) #填充

[ 9. 9. 9. 9.]

g = np.ones((3,3)) #1初始化一个数组

[[ 1. 1. 1.]

[ 1. 1. 1.]

[ 1. 1. 1.]]

g = np.ones((3,3)) *8

[[ 8. 8. 8.]

[ 8. 8. 8.]

[ 8. 8. 8.]]

五、numpy使用练习

#倒叙排序

print(np.arange(10,15,1)[::-1])

[14 13 12 11 10]

#查看数组中不为0的索引

print(np.nonzero([1,2,3,4,5,9,,,,,,2]))

(array([ 0, 1, 2, 3, 4, 5, 11], dtype=int64),)

#在数组最外层加一圈0

a = np.ones((5,5))

print(np.pad(a,pad_width=1,

mode='constant',constant_values=))

#取得两个数组中相同的值

#统计数组中每个数值出现的次数

f = np.array([1,2,3,4,5,1,2,2,1])

print(np.bincount(f))

=====> [0 3 3 1 1 1]

#统计数组中最常出现的数字

#快速查找Top-K的数据

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180419G1LE5700?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券