numpy基本语法


numpy和pytorch基本语法差不多

导入

import numpy as np

数据生成

手动生成

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

自动生成

np.ones((3,4))
np.zeros((2,3)):0
np.empty((3,2)):无限接近0
np.random.random((3,2)) 生成3行2列从0到1的随机数
np.random.normal(size=(3,2))#生成3行2列符合标准正态分布的随机数
np.random.randint(0,10,size=(3,2))#生成3行2列从0到10的随机整数
np.arange(1,10)
np.linspace(-1,1,100)#从-1到1生成100个点
np.eye(9)#生成九阶矩阵,一个对角线全是
np.random.choice(g)#g中选一个数据
np.random.shuffle(g)#打乱g排序

查询

类型:a.dtype

形状

变形:a.reshape()
数组形状:a.shape 没有a.size()
维度:a.ndim
大小:a.size #长度
变一维,推平:a.flatten(),a.ravel()
加行维度:arr1_1 = arr1[np.newaxis,:]
加列维度:arr1_2 = arr1[:,np.newaxis]
至少2维:np.atleast_2d(arr1) #一维的变两维,两维及以上没有变化

arr1_1 = arr1[np.newaxis,:]
print(arr1_1)
print(arr1_1.shape)

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

arr1_2 = arr1[:,np.newaxis]
print(arr1_2)
print(arr1_2.shape)

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

基本运算

-
* a.dot(),np.matmul(a,c)行乘列
//
%
**

>:
arr3 = arr1 > 3:
[[False False False]
[ True True True]]

函数

np.sum(sample1)#求和
np.min(sample1)#求最小值
np.max(sample1)#求最大值
np.sum(sample1,axis=0)#对列求和
np.sum(sample1,axis=1)#对行求和
np.sum(sample1,axis=0)#对列求和
sample1.argmin()#索引
sample1.mean()#求平均值
a.median()#求中位数
a.std()#求标准差
a.sqrt()#开方

转置与逆矩阵

转置

一位数组不能转置

a.T
a.transpose()

逆矩阵
np.linalg.inv(a)

排序

np.sort(sample)#排序
sample.argsort()
np.clip(sample,2,7)#小于2就变成2,大于7就变为7

索引

和pytorch差不多

数组合并

垂直合并

arr3 = np.vstack((arr1,arr2))
arr = np.concatenate((arr3,arrv),axis=0)#默认是水平合并

水平 合并

arr4 = np.hstack((arr1,arr2))
arr = np.concatenate((arr3,arrv),axis=1)

分割

垂直分割

arr4,arr5,arr6 = np.split(arr1,3,axis=0)#垂直方向分割,分成3份

arrv1,arrv2,arrv3 = np.vsplit(arr1,3)#垂直分割

水平分割

arr2,arr3 = np.split(arr1,2,axis=1)#水平方向分割,分成2份
arr2,arr3,arr4 = np.split(arr1,3,axis=1)#水平方向分割,分成3份#会报错因为不均等
用这个
arr7,arr8,arr9 = np.array_split(arr1,3,axis=1)#水平方向分割,分成3份,不等分割

arrh1,arrh2 = np.hsplit(arr1,2)#水平分割

深拷贝和浅拷贝

浅拷贝

arr1 = np.array([1,2,3])
arr2 = arr1#arr1,arr2共享一块内存,浅拷贝

arr2[0] = 5
print(arr1)
print(arr2)

[5 2 3]
[5 2 3]

深拷贝

arr3 = arr1.copy()#深拷贝,创建了新内存

arr3[0] = 10s
print(arr1)
print(arr3)

[5 2 3]
[10  2  3]