数据科学库 1、numpy

1、numpy的基本属性

(1)定义

import numpy as np
a=np.array([[1,2,3],
           [2,3,4]])
print(a)

#[[1 2 3]
 [2 3 4]]

(2)维数

print("number of dim:",a.dim)

# number of dim: 2

(3)形状

print("shape:",a.shape)

# shape: (2, 3)

(4)大小

print("size:",a.size)

# size: 6

2、创建数组

(1)定义一维数组及类型

import numpy as np
a=np.array([2,23,4],dtype=np.int)
print(a)
print(a.dtype)

#[ 2 23  4]
int32

(2)定义二维矩阵

import numpy as np
a=np.array([[2,23,4],
           [2,23,4]])
print(a)

# [[ 2 23  4]
 [ 2 23  4]]

(3)定义全都为0的数组

a=np.zeros((3,4))
print(a)

# [[0. 0. 0. 0.]
 [0. 0. 0. 0.]
 [0. 0. 0. 0.]]

(4)定义全都为1的数组

import numpy as np
a=np.ones((3,4))
print(a)

[[1. 1. 1. 1.]
 [1. 1. 1. 1.]
 [1. 1. 1. 1.]]

(5)定义什么都没有的数组

import numpy as np
a=np.empty((3,4))
print(a)

# [[6.23042070e-307 4.67296746e-307 1.69121096e-306 1.33511290e-306]
 [6.23058368e-307 1.78019082e-306 1.78020984e-306 6.23053954e-307]
 [1.42420481e-306 1.24612013e-306 8.45605478e-307 1.86919921e-306]]

(6)生成等长线段

import numpy as np
a=np.linspace(1,10,6).reshape((2,3))
print(a)

# [[ 1.   2.8  4.6]
 [ 6.4  8.2 10. ]]

3、numpy的基础运算

(1)加法和比较

import numpy as np
a=np.array([10,20,30,40])
b=np.arange(4)

print(a,b)
c=a+b
print(c)

print(b<3)

# [10 20 30 40] [0 1 2 3]
[10 21 32 43]
[ True  True  True False]

(2)乘法

import numpy as np
a=np.array([[1,1],
           [0,1]])
b=np.arange(4).reshape((2,2))

#逐个相乘
c=a*b
#点乘
c_dot=np.dot(a,b)
c_dot_2=a.dot(b)  #第二种表示方式
print(c)
print(c_dot)

#[[0 1]
 [0 3]]
[[2 4]
 [2 3]]

(3)随机生成,求和,最大值,最小值

import numpy as np
a=np.random.random((2,4))

print(a)
print(np.sum(a))
print(np.min(a))
print(np.max(a))

#[[0.85328566 0.5705338  0.42037589 0.87088714]
 [0.06082003 0.95349259 0.12335217 0.838677  ]]
4.691424276760934
0.060820032482145736
0.9534925867545939


#print(np.sum(a,axis=1)) 代表在某一列的和
#print(np.sum(a,axis=0)) 代表在某一行的和

(4)输出最大位,最小位,平均值,中位数

import numpy as np
a=np.arange(2,14).reshape(3,4)

print(np.argmin(a))
print(np.argmax(a))

#平均值的两种方法
print(np.mean(a))
print(np.average(a))

#中位数
print(np.median(a))

# 0
11
7.5
7.5
7.5

(5)累加、累差

import numpy as np
a=np.arange(2,14).reshape(3,4)

#累加
print(np.cumsum(a))

#[[ 2  3  4  5]
 [ 6  7  8  9]
 [10 11 12 13]] 
 [ 2  5  9 14 20 27 35 44 54 65 77 90]

#累差
print(np.diff(a))

#[[1 1 1]
 [1 1 1]
 [1 1 1]]

(6) 找出非零的数

import numpy as np
a=np.arange(2,14).reshape(3,4)

print(a)
print(np.nonzero(a))

#[[ 2  3  4  5]
 [ 6  7  8  9]
 [10 11 12 13]]
(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))

(7) 排序

import numpy as np
a=np.arange(14,2,-1).reshape(3,4)

print(a)
print(np.sort(a))

# [[14 13 12 11]
 [10  9  8  7]
 [ 6  5  4  3]]
[[11 12 13 14]
 [ 7  8  9 10]
 [ 3  4  5  6]]

(8)矩阵的反向

import numpy as np
a=np.arange(14,2,-1).reshape(3,4)

print(a)
print(np.transpose(a))
#print(a.T)

# [[14 13 12 11]
 [10  9  8  7]
 [ 6  5  4  3]]
[[14 10  6]
 [13  9  5]
 [12  8  4]
 [11  7  3]]

(9)clip功能

import numpy as np
a=np.arange(14,2,-1).reshape(3,4)

print(a)
print(np.clip(a,5,9))

# [[14 13 12 11]
 [10  9  8  7]
 [ 6  5  4  3]]
[[9 9 9 9]
 [9 9 8 7]
 [6 5 5 5]]

4、numpy索引

import numpy as np
a=np.arange(3,15).reshape((3,4))
print(a)
print(a[2][1])
#print(a[2,1])

#第二行的所有数
print(a[2,:])
#第一行的从1到2的值
print(a[1,1:3])

[[ 3  4  5  6]
 [ 7  8  9 10]
 [11 12 13 14]]
12
[11 12 13 14]
[8 9]

5、合并

import numpy as np
a=np.array([1,1,1])
b=np.array([2,2,2])

#纵向合并
C=np.vstack((a,b))
#横向合并
D=np.hstack((a,b))

print(a.shape,C.shape,D.shape)

#变成纵向
print(a[:,np.newaxis])

#多个合并
E=np.concatenate((a,b,a,b),axis=0)
print(E)

#(3,) (2, 3) (6,)
[[1]
 [1]
 [1]]
[1 1 1 2 2 2 1 1 1 2 2 2]

6、分割

import numpy as np

a=np.arange(12).reshape((3,4))
print(a)

#等量分割
print(np.split(a,2,axis=1))

# 不等量的分割
print(np.array_split(a,3,axis=1))

# 纵向分割
print(np.vsplit(a,3))
print(np.hsplit(a,2))

#[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]
[array([[0, 1],
       [4, 5],
       [8, 9]]), array([[ 2,  3],
       [ 6,  7],
       [10, 11]])]
[array([[0, 1],
       [4, 5],
       [8, 9]]), array([[ 2],
       [ 6],
       [10]]), array([[ 3],
       [ 7],
       [11]])]
[array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8,  9, 10, 11]])]
[array([[0, 1],
       [4, 5],
       [8, 9]]), array([[ 2,  3],
       [ 6,  7],
       [10, 11]])]

7、复制

(1)指向同一地址的复制

import numpy as np

a=np.arange(4)

b=a
c=a
d=b

a[0]=11

print(b)

[11  1  2  3]

(2)copy

import numpy as np

a=np.arange(4)


b=a.copy() # deep copy
a[0]=10
print(b)

#[0 1 2 3]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值