Python Numpy学习杂技

 数据分析时非常重要。比list, dictionary 快很多

安装numpy

方法1:google搜索 numpy关键字 ——> 找到官网——>然后下载安装。
方法2:windows中运行命令行,输入 pip3 install numpy 直接安装。 前提要安装pip
    #pip3 install pandas

python中的list是python的内置数据类型,list中的数据类不必相同的,而array的中的类型必须全部相同。

在list中的数据类型保存的是数据的存放的地址,简单的说就是指针,并非数据,这样保存一个list就太麻烦了

例如list1=[1,2,3,'a']需要4个指针和四个数据,增加了存储和消耗cpu。

如果a是array,结果是:[1 2 3 4 5]

如果a是list,结果是:[1, 2, 3, 4, 5]

 Numpy属性

先给矩阵命名,列表转换成数组的方法
import numpy as np
array = np.array([[1,2,3],[4,5,6]])
print(array)
print("dim:",array.ndim) 		#是几维数组
print("shape:",array.shape) 	# 几行几列
print("size:",array.size) 		#总共多少元素
#输出
[[1 2 3]
 [4 5 6]]
dim: 2
shape: (2, 3)
size: 6

 Numpy 创建各种各样的array (矩阵或者数组)

import numpy as np
a = np.array([[1,2],[3,4]],dtype=np.float) # np.int    np.int32  np.float32   还有16位的
print(a)
print(a.dtype)

[[1. 2.]
 [3. 4.]]
float64
a=np.zeros((3,4)) #参数是一个shape
print(a)
a=np.ones((3,4),dtype = np.int16)
print(a)
a=np.empty((3,4)) # 什么都没有,其实是一个非常接近于0的数字
print(a)
#输出
[[0. 0. 0. 0.]
 [0. 0. 0. 0.]
 [0. 0. 0. 0.]]
[[1 1 1 1]
 [1 1 1 1]
 [1 1 1 1]]
[[0. 0. 0. 0.]
 [0. 0. 0. 0.]
 [0. 0. 0. 0.]]
a = np.arange(10,20,2) # 和range()类似
print(a)
a = np.arange(12).reshape((3,4))
print(a)
a = np.linspace(1,20,5) #数列. 感觉是等差数列。 同样可以用reshape()
print(a)
#输出
[10 12 14 16 18]
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]
[ 1.    5.75 10.5  15.25 20.  ]

Numpy 的基础运算

a=np.array([10,20,30,40])
b=np.arange(4)
c = a-b
print(c)
c=a+b
print(c)
c=a*b
print(c)
c=b**3 # 平方, 三次方
print(c)

[10 19 28 37]
[10 21 32 43]
[  0  20  60 120]
[ 0  1  8 27]

 

c = np.sin(a)
print(c)
c = np.cos(a)
print(c)

[-0.54402111  0.91294525 -0.98803162  0.74511316]
[-0.83907153  0.40808206  0.15425145 -0.66693806]

print(b<3) # 返回一个列表
print(b==3)
[ True  True  True False]
[False False False  True]

a = np.array([[1,1],[0,1]])
b = np.arange(4).reshape(2,2)
print(a*b) # 对应元素相乘
print(np.dot(a,b)) #矩阵相乘
print(a.dot(b)) # 矩阵相乘
[[0 1]
 [0 3]]
[[2 4]
 [2 3]]
[[2 4]
 [2 3]]

a = np.random.random((2,4)) #2行四列
print(a)
print(np.sum(a)) #整个矩阵求和
np.min(a) #最小值(没有输出)
np.max(a) #最大值(没有输出)
# 列数和行数当中的求和 最大值 最小值
print(np.sum(a,axis =1)) #0每一行中求和,1每一列

[[0.85361493 0.80152827 0.90154856 0.97235675]
 [0.81265787 0.74607092 0.97307991 0.13673675]]
6.197593956612348
[3.5290485  2.66854545]

 Numpy基础运算2

A = np.arange(2,14).reshape((3,4))
print(A)
print(np.argmin(A)) # argument  返回最小值所在索引
print(np.argmax(A))
print(np.mean(A)) #平均值
print(A.mean()) #由于A是np类型,所以可以这样调用
print(np.average(A)) # 另一种求平均值的方法
#print(A.average()) # 'numpy.ndarray' object has no attribute 'average'
# 个人觉得 要npmpy中有这个属性才可以调用。其实本质还是这种方式调用
print(np.median(A)) #中位数
print(np.cumsum(A)) # 是一个累加的过程,逐步相加
print(np.diff(A)) #累差。 后一个减去前一个
print(np.nonzero(A)) # 输出两个array,第一个表示非零的行数,第二个输出列数。可以定位那个数字非零。
print(np.sort(A)) #矩阵排序
#矩阵转置
print(np.transpose(A))
print(A.T)
print((A.T).dot(A)) #矩阵乘法
print(np.clip(A,5,9)) # 所有小于5的都变成5,所有大于9的变成9
#所有numpy指令都可以指定对于行计算还是对于列计算。 axis=0,1

[[ 2  3  4  5]
 [ 6  7  8  9]
 [10 11 12 13]]
0
11
7.5
7.5
7.5
7.5
[ 2  5  9 14 20 27 35 44 54 65 77 90]
[[1 1 1]
 [1 1 1]
 [1 1 1]]
(array([0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2], dtype=int64), array([0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3], dtype=int64))
[[ 2  3  4  5]
 [ 6  7  8  9]
 [10 11 12 13]]
[[ 2  6 10]
 [ 3  7 11]
 [ 4  8 12]
 [ 5  9 13]]
[[ 2  6 10]
 [ 3  7 11]
 [ 4  8 12]
 [ 5  9 13]]
[[140 158 176 194]
 [158 179 200 221]
 [176 200 224 248]
 [194 221 248 275]]
[[5 5 5 5]
 [6 7 8 9]
 [9 9 9 9]]

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值