numpy

import numpy as np
matrix=[
    [1,2,3,4],
    [5,6,7,8],
    [9,10,11,12],
]
q1=np.insert(matrix,1,[1,1,1,1],0)
print('>>>>q1>>>>\n',q1)
q2=np.insert(matrix,0,[1,1,1],1)
print('>>>>q2>>>>\n',q2)
q3=np.insert(matrix,3,[1,1,1,1],0)
print('>>>>q3>>>>\n',q3)
import numpy as np
matrix=[
    [1,2,3,4],
    [5,6,7,8],
    [9,10,11,12],
]
p1=np.delete(matrix,1,0)
print('>>>>p1>>>>\n',p1)
p2=np.delete(matrix,1,1)
print('>>>>p2>>>>\n',p2)
p3=np.delete(matrix,1)
print('>>>>p3>>>>\n',p3)
p4=np.delete(matrix,[0,1],1)
print('>>>>p4>>>>\n',p4)
import numpy as np
a = np.array([1,1,1,1])
b = np.array([[1],[1],[1],[1]])
a+b
array([[2, 2, 2, 2],
[2, 2, 2, 2],
[2, 2, 2, 2],
[2, 2, 2, 2]]) # 这叫python的广播机制

c = np.array([[1,1,1,1]])
c+b
array([[2, 2, 2, 2],
[2, 2, 2, 2],
[2, 2, 2, 2],
[2, 2, 2, 2]])

W = np.array([[1,1,1],[2,2,2]])
W[:,1]
array([1, 2]) # 这里要特别注意,W[:,1]虽然取的是W的第一列,但是返回的却是一维数组

W[1]
array([2, 2, 2]) # 取得是W第一行,返回的也是一维数组

W[:,1] = np.array([5,5])
W
array([[1, 5, 1],
[2, 5, 2]]) # 这里用array[5,5]这样的一维数组直接可以把W矩阵的第1列替换(维`度`符合即可)
#numpy.append(arr,values,axis=None)
#将values插入到目标arr的最后,其中values与arr应该有相同维度,具体见例子

import numpy as np
matrix = [
[1,2,3,4],
[5,6,7,8],
[9,10,11,12]
]
m1 = np.append(matrix,[[1,1,1,1]],axis=0)
print(>>>>m1>>>>\n’,m1)
m2 = np.append(matrix,[[1],[1],[1]],axis=1)
print(>>>>m2>>>>\n’,m2)
m3 = np.append(matrix,[1,1,1,1])
print(>>>>m3>>>>\n’,m3)
import numpy as np
a1 = np.random.choice(7,5) # 从0~7中随机选择5个数组成一维数组
a1
array([3, 1, 0, 1, 4])

a2 = np.random.choice([0,1,2,3,4,5,6],5) # 从给定list中随机选择5个数组成一维数组
a2
array([1, 6, 6, 6, 4])

a3 = np.random.choice(np.array([0,1,2,3,4,5,6]),5) # 将list换成array数组依然可以运行,效果一致
a3
array([3, 0, 5, 5, 3])

a4 = np.random.choice([0,1,2,3,4,5,6],5,replace=False) # 上述均有重复,将replace设置为False,即可按要求没有重复的选取
a4
array([0, 4, 3, 6, 5])

a5 = np.random.choice(np.array([0,1,2,3,4,5,6]),5,p=[0.1,0.1,0.1,0.1,0.1,0.1,0.4])
a5
array([6, 3, 2, 6, 6])
import numpy as np
a = np.array([[1,1,1],[2,2,2],[0,3,6]])
a
array([[1, 1, 1],
[2, 2, 2],
[0, 3, 6]])

b1 = np.argmax(a) # 将数组a拉平,最大值索引为9(初始索引为0)
b1
8

b2 = np.argmax(a, axis=0) # 按列选取最大值的索引
b2
array([1, 2, 2], dtype=int64)

b3 = np.argmax(a, axis=1) # 按行选取最大值的索引
b3
array([0, 0, 2], dtype=int64)
mport numpy as np
y1 = np.linspace(-10.0,10.0) # 默认生成50个数据
y1
array([-10. , -9.59183673, -9.18367347, -8.7755102 ,
-8.36734694, -7.95918367, -7.55102041, -7.14285714,
-6.73469388, -6.32653061, -5.91836735, -5.51020408,
-5.10204082, -4.69387755, -4.28571429, -3.87755102,
-3.46938776, -3.06122449, -2.65306122, -2.24489796,
-1.83673469, -1.42857143, -1.02040816, -0.6122449 ,
-0.20408163, 0.20408163, 0.6122449 , 1.02040816,
1.42857143, 1.83673469, 2.24489796, 2.65306122,
3.06122449, 3.46938776, 3.87755102, 4.28571429,
4.69387755, 5.10204082, 5.51020408, 5.91836735,
6.32653061, 6.73469388, 7.14285714, 7.55102041,
7.95918367, 8.36734694, 8.7755102 , 9.18367347,
9.59183673, 10. ])

y2 = np.linspace(1,10,10) # 生成10个数据,包括首尾
y2
array([ 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.])

y3 = np.linspace(1,10,10,endpoint=False) # 不包括尾部数据
y3
array([1. , 1.9, 2.8, 3.7, 4.6, 5.5, 6.4, 7.3, 8.2, 9.1])

y4= np.linspace(1, 10, 6, retstep=True) # 将步长与结果的数组放入一个list、
y4
(array([ 1. , 2.8, 4.6, 6.4, 8.2, 10. ]), 1.8)

import numpy as np
x = np.array([[1,2,3],[4,5,6],[1,2,3]])
x.flatten()
array([1, 2, 3, 4, 5, 6, 1, 2, 3]) # 拉平

x.ravel()
array([1, 2, 3, 4, 5, 6, 1, 2, 3])

x.ravel(‘F’)
array([1, 4, 1, 2, 5, 2, 3, 6, 3]) # 按列拉平

x.flatten(‘F’)
array([1, 4, 1, 2, 5, 2, 3, 6, 3])

x.flatten()[1] = 20
x
array([[1, 2, 3],
[4, 5, 6],
[1, 2, 3]])

x.ravel()[1] = 20
x
array([[ 1, 20, 3],
[ 4, 5, 6],
[ 1, 2, 3]])

x.reshape(1,-1) # 注意结果仍然是二维
array([[1, 2, 3, 4, 5, 6, 1, 2, 3]]) # 这里有两个方括号

x = np.array([1,2,3,6,7,8]) # 注意操作的是数组,即原x是数组
***>>> x[None,:] # 转成行向量(二维矩阵)
array([[1, 2, 3, 6, 7, 8]])

x[:,None] # 转成列向量(二维矩阵)***
array([[1],
[2],
[3],
[6],
[7],
[8]])

x[np.newaxis, :] # np.newaxis与None用法一致
array([[1, 2, 3, 6, 7, 8]])
x = np.array([[1,2,3],[2,3,4]])
np.prod(x)
144

np.prod(x,axis=1)
array([ 6, 24])

np.prod(x,axis=0)
array([ 2, 6, 12])
import numpy as np
x = np.array([[1,2,3],[-3,2,4],[5,-2,9]])
x
array([[ 1, 2, 3],
[-3, 2, 4],
[ 5, -2, 9]])

y1 = np.maximum(0,x) # 把小于0的元素置0,比改变x的值
y1
array([[1, 2, 3],
[0, 2, 4],
[5, 0, 9]])

y2 = np.minimum(0,x) # 把大于0的元素置0,不改变x的值
y2
array([[ 0, 0, 0],
[-3, 0, 0],
[ 0, -2, 0]])

x1 = x.copy()
x1
array([[ 1, 2, 3],
[-3, 2, 4],
[ 5, -2, 9]])

x1[x1 < 0] = 0 # 把小于0的元素置0,改变x1的值
x1
array([[1, 2, 3],
[0, 2, 4],
[5, 0, 9]])

x2 = x.copy()
x2[x2 > 0] = 0 # 把大于0的元素置0,改变x2的值
x2
array([[ 0, 0, 0],
[-3, 0, 0],
[ 0, -2, 0]])
import numpy as np
x = np.array([[1,2,3],[-3,2,4],[5,-2,9]])
x
array([[ 1, 2, 3],
[-3, 2, 4],
[ 5, -2, 9]])

x1 = x.copy() # copy(),开辟新地址
x1[x1 > 0] = 0
x1
array([[ 0, 0, 0],
[-3, 0, 0],
[ 0, -2, 0]])

x # x不变
array([[ 1, 2, 3],
[-3, 2, 4],
[ 5, -2, 9]])

x2 = x # 直接等于,未开辟新地址,x2与x相关联
x2
array([[ 1, 2, 3],
[-3, 2, 4],
[ 5, -2, 9]])

x2[x2>0] = 0
x2
array([[ 0, 0, 0],
[-3, 0, 0],
[ 0, -2, 0]])

x # x也改变
array([[ 0, 0, 0],
[-3, 0, 0],
[ 0, -2, 0]])

x = np.array([[1,2,3],[-3,2,4],[5,-2,9]])
x3 = x[2] # 取x的第3行
x3
array([ 5, -2, 9])

x3[2] = 100 # 将x3第3个元素置100
x # x中对应的元素置也被置成100了
array([[ 1, 2, 3],
[ -3, 2, 4],
[ 5, -2, 100]])
import numpy as np
n = np.random.rand(3,4)
n
array([[0.11502462, 0.3503468 , 0.6206656 , 0.35172063],
[0.66367565, 0.10195004, 0.22708003, 0.9318615 ],
[0.77946053, 0.81804715, 0.2272248 , 0.17736476]])
import numpy as np
x = np.random.randn(2,3)
x
array([[-0.09382672, -0.97939614, 0.0222352 ],
[ 0.15060188, -0.01107968, 1.08374427]])

y = np.multiply(0.1,np.random.randn(2,3))+0.5 # 一般正太分布
y
array([[0.49305173, 0.36802044, 0.48699281],
[0.45197275, 0.53837051, 0.60022348]])

import numpy as np
z = np.random.randint(2,9,(2,3))
z
array([[2, 3, 6],
[8, 2, 8]])

m = np.random.randint(9,size = (2,3))
m
array([[4, 0, 2],
[5, 2, 8]])
x = ‘You are right’
type(x)
<classstr>

assert type(x)==str, ‘x is not str’
x = [1,2,3]
type(x)
<classlist>

assert type(x)==str, ‘x is not str’
Traceback (most recent call last):
File “”, line 1, in
AssertionError: x is not str
import numpy as np

A = np.arange(95,99).reshape(2,2)
A
array([[95, 96], [97, 98]])

np.pad(A,((3,2),(2,3)),‘constant’,constant_values = (0,0))
array([[ 0, 0, 0, 0, 0, 0, 0],
[ 0, 0, 0, 0, 0, 0, 0],
[ 0, 0, 0, 0, 0, 0, 0],
[ 0, 0, 95, 96, 0, 0, 0],
[ 0, 0, 97, 98, 0, 0, 0],
[ 0, 0, 0, 0, 0, 0, 0],
[ 0, 0, 0, 0, 0, 0, 0]])
说明: 在矩阵行的上部分添加3行,下部分添加2行,在列的左部分添加2列,右部分添加3列。

b = np.array([[[1,2],[3,4]],[[3,4],[7,8]],[[4,5],[1,2]]])

b
array([[[1, 2],
[3, 4]],

   [[3, 4],
    [7, 8]],

   [[4, 5],
    [1, 2]]])
1
2
3
4
5
np.pad(b, ((0,0),(1,1),(1,1)), ‘constant’, constant_values = 0)
array([[[0, 0, 0, 0],
[0, 1, 2, 0],
[0, 3, 4, 0],
[0, 0, 0, 0]],

   [[0, 0, 0, 0],
    [0, 3, 4, 0],
    [0, 7, 8, 0],
    [0, 0, 0, 0]],

   [[0, 0, 0, 0],
    [0, 4, 5, 0],
    [0, 1, 2, 0],
    [0, 0, 0, 0]]])
import numpy as np
c = np.array([[1,2],[3,4]])
c
array([[1, 2],
[3, 4]])

c.astype(np.float32)
array([[1., 2.],
[3., 4.]], dtype=float32)

np.meshgrid() 快速生成网格
meshgrid(x,y) 可用于快速生成由于 x轴坐标 x 和 y 轴坐标 y 组合的网格点

import numpy as np
x = np.array([1,3,5])
y = np.array([4,6])
XX,YY = np.meshgrid(x,y)
XX
array([[1, 3, 5],
[1, 3, 5]])

YY
array([[4, 4, 4],
[6, 6, 6]])
import numpy as np
x = np.array([[3,4,5],[1,3,4]])
y = np.array([[1,1,1],[2,2,2]])
np.hstack((x,y)) # 水平堆叠
array([[3, 4, 5, 1, 1, 1],
[1, 3, 4, 2, 2, 2]])

np.vstack((x,y)) # 竖直堆叠
array([[3, 4, 5],
[1, 3, 4],
[1, 1, 1],
[2, 2, 2]])
import numpy as np
a = np.array([0.125,0.568,5.688])
np.round(a) # 四舍五入取整, np.around 和 round 用法一致
array([0., 1., 6.])

np.round(a,decimals = 2) # 四舍五入保留2位小数
array([0.12, 0.57, 5.69])

np.floor(a) # 向下取整
array([0., 0., 5.])

np.ceil(a) # 向上取整
array([1., 1., 6.])
import numpy as np
a = np.array([[1,2,3],[4,5,6]])
a = np.array([[1,2,3,6],[4,5,6,6]])
a1 = a.reshape((1,2,4))
a1
array([[[1, 2, 3, 6],
[4, 5, 6, 6]]])

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

b1 = b.reshape((1,3,4)).transpose((1,0,2))
b1
array([[[3, 4, 5, 6]],
a1
array([[[1, 2, 3, 6],
[4, 5, 6, 6]]])

a1+b1
array([[[ 4, 6, 8, 12],
[ 7, 9, 11, 12]],
c = np.array([[[1,2,5],[3,4,6]],[[4,5,6],[7,8,9]]])
c
array([[[1, 2, 5],
[3, 4, 6]],
c.transpose(1,0,2) # 将c的维度按照 第1维度,第0维度,第2维度的排序排成 第0,1,2维度
array([[[1, 2, 5],
[4, 5, 6]],
c.transpose(1,2,0) # 将c的维度按照 第1维度,第2维度,第0维度的排序排成 第0,1,2维度
array([[[1, 4],
[2, 5],
[5, 6]],
import numpy as np
a = np.array([2,2,3,4,5,5,6,7])
a[0:7:2]
array([2, 3, 5, 6])
import numpy as np
a = np.array([2,2,3,4,5,5,6,7])
a[0::2]
array([2, 3, 5, 6])
a[::-1]
array([7, 6, 5, 5, 4, 3, 2, 2])
import numpy as np
a = np.array([2,2,3,4,5,5,6,7])
s = slice(0,7,2)
a[s]
array([2, 3, 5, 6])
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值