numpy作业存档

import numpy as np
c = np.arange(1,13).reshape(6,2)

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

np.vsplit(c,3)

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

d = c.T


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


np.hsplit(d,3)

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

import numpy as np
a = np.array((1,2,4,6))
b = np.array((7,8,9,20))
e = np.dstack((a,b))
ay([[[ 1,  7],
        [ 2,  8],
        [ 4,  9],
        [ 6, 20]]])

np.dsplit(e,2)

[array([[[1],
         [2],
         [4],
         [6]]]),
 array([[[ 7],
         [ 8],
         [ 9],
         [20]]])]

inistate =np.array([1,2,3,4])
pre_inistate = inistate[0:3]
pre_inistate

array([1, 2, 3])

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]])

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]

array([2, 2, 2])

W[:,1] = np.array([3,3])
W

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

import numpy as np
matrix = [
    [1,2,3,4],
    [5,6,7,8],
    [9,10,11,12]
]
p1 = np.delete(matrix, 1, 0) # 第0维度(行)第1行被删除(初始行为0行)
print('>>>>p1>>>>\n',p1)

>>>>p1>>>>
 [[ 1  2  3  4]
 [ 9 10 11 12]]

p2 = np.delete(matrix, 1, 1) # 第1维度(列)第1行被删除
print('>>>>p2>>>>\n',p2)

>>>>p2>>>>
 [[ 1  3  4]
 [ 5  7  8]
 [ 9 11 12]]

p3 = np.delete(matrix, 1) # 拉平后删除第1个元素(初始为第0个)
print('>>>>p3>>>>\n',p3)
>>>>p3>>>>
 [ 1  3  4  5  6  7  8  9 10 11 12]

p4 = np.delete(matrix, [0,1], 1) # 第1维度(列)第0、1行被删除
print('>>>>p4>>>>\n',p4)

>>>>p4>>>>
 [[ 3  4]
 [ 7  8]
 [11 12]]

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)
# 第0维度(行)第1行添加[1,1,1,1]
print('>>>>q1>>>>\n',q1)

>>>>q1>>>>
 [[ 1  2  3  4]
 [ 1  1  1  1]
 [ 5  6  7  8]
 [ 9 10 11 12]]

q2 = np.insert(matrix, 0, [1,1,1], 1) # 第1维度(列)第0列添加1,1,1
print('>>>>q2>>>>\n',q2)

>>>>q2>>>>
 [[ 1  1  2  3  4]
 [ 1  5  6  7  8]
 [ 1  9 10 11 12]]

q3 = np.insert(matrix, 2, [1,2,3], 1) # 第1维度(列)第2行添加[1,2,3]
print('>>>>q3>>>>\n',q3)

>>>>q3>>>>
 [[ 1  2  1  3  4]
 [ 5  6  2  7  8]
 [ 9 10  3 11 12]]

import numpy as np
c = [
[1,2,3,4],
[5,6,7,8],
[9,10,11,12]
]
m1 = np.append(c,[[2,2,2,2]],axis=0)
print('m1----\n',m1)

m1----
 [[ 1  2  3  4]
 [ 5  6  7  8]
 [ 9 10 11 12]
 [ 2  2  2  2]]

m2 = np.append(matrix,[[1],[1],[100]],axis=1)
print('m2-----\n',m2)

m2-----
 [[  1   2   3   4   1]
 [  5   6   7   8   1]
 [  9  10  11  12 100]]

m3 = np.append(matrix,[1,1,1,1])
print('m3-----\n',m3)

m3-----
 [ 1  2  3  4  5  6  7  8  9 10 11 12  1  1  1  1]

import numpy as np
a = np.random.choice(8,4) # 从0~8中随机选择4个数组成一维数组

array([4, 5, 7, 7])

b = np.random.choice([0,1,2,23,34,45,56,89,7,55],4) # 从给定list中随机选择4个数组成一维数组

array([34, 56,  1,  7])

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

array([0, 0, 1, 5])

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

array([89,  2, 55,  1,  6])

f = 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])

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

array([[ 1,  1,  1],
       [ 2,  2,  2],
       [ 5,  3,  6],
       [25,  5,  4]])

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

b2 = np.argmax(a, axis=0) # 按列选取最大值的索引

array([3, 3, 2], dtype=int64)

b3 = np.argmax(a, axis=1) # 按行选取最大值的索引

array([0, 0, 2, 0], dtype=int64)

import numpy as np
y1 = np.linspace(-5.0,5.0) # 默认生成50个数据

array([-5.        , -4.79591837, -4.59183673, -4.3877551 , -4.18367347,
       -3.97959184, -3.7755102 , -3.57142857, -3.36734694, -3.16326531,
       -2.95918367, -2.75510204, -2.55102041, -2.34693878, -2.14285714,
       -1.93877551, -1.73469388, -1.53061224, -1.32653061, -1.12244898,
       -0.91836735, -0.71428571, -0.51020408, -0.30612245, -0.10204082,
        0.10204082,  0.30612245,  0.51020408,  0.71428571,  0.91836735,
        1.12244898,  1.32653061,  1.53061224,  1.73469388,  1.93877551,
        2.14285714,  2.34693878,  2.55102041,  2.75510204,  2.95918367,
        3.16326531,  3.36734694,  3.57142857,  3.7755102 ,  3.97959184,
        4.18367347,  4.3877551 ,  4.59183673,  4.79591837,  5.        ])

y2 = np.linspace(1,9,7) # 生成7个数据,包括首尾

array([1.        , 2.33333333, 3.66666667, 5.        , 6.33333333,
       7.66666667, 9.        ])

y3 = np.linspace(1,10,7,endpoint=False) # 不包括尾部数据

array([1.        , 2.28571429, 3.57142857, 4.85714286, 6.14285714,
       7.42857143, 8.71428571])

y4= np.linspace(1, 10, 6, retstep=True) # 将步长与结果的数组放入一个list、

(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

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

x.ravel()[1] = 20

array([[ 1, 20,  3],
       [ 4,  5,  6],
       [ 1,  2,  3]])

x.reshape(1,-1) # 注意结果仍然是二维

array([[ 1, 20,  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)

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]])

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

array([[2, 2, 3],
       [2, 2, 4],
       [5, 2, 9]])

y2 = np.minimum(3,x) # 把大于3的元素置3,不改变x的值
y2

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

x1 = x.copy()

array([[ 1,  2,  3],
       [-3,  2,  4],
       [ 5, -2,  9]])

x1[x1 < 2] = 0 # 把小于2的元素置0,改变x1的值

array([[0, 2, 3],
       [0, 2, 4],
       [5, 0, 9]])

x2 = x.copy()
x2[x2 > 3] = 2 # 把大于3的元素置2,改变x2的值

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

import numpy as np
x = np.array([[1,2,3],[-3,1,4],[1,-2,9]])

array([[ 1,  2,  3],
       [-3,  1,  4],
       [ 1, -2,  9]])

x1 = x.copy() # copy(),开辟新地址
x1[x1 > 2] = 555#把大于2的置555,改变x1的值

array([[  1,   2, 555],
       [ -3,   1, 555],
       [  1,  -2, 555]])

array([[ 1,  2,  3],
       [-3,  1,  4],
       [ 1, -2,  9]])

x2 = x # 直接等于,未开辟新地址,x2与x相关联

array([[ 1,  2,  3],
       [-3,  1,  4],
       [ 1, -2,  9]])

x2[x2>0] = 0#大于零的变为0,x2改变值

array([[ 0,  0,  0],
       [-3,  0,  0],
       [ 0, -2,  0]])

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行

array([ 5, -2,  9])

x3[1] = 666 # 将x3第2个元素置666

array([[  1,   2,   3],
       [ -3,   2,   4],
       [  5, 666,   9]])
port numpy as np
x = np.array([[1,2,3],[4,5,6],[1,1,1]])
np.zeros_like(x) # 生成一个和x大小相同的全零矩阵

array([[0, 0, 0],
       [0, 0, 0],
       [0, 0, 0]])

import numpy as np
n = np.random.rand(3,3)#生成一个3行3列的随机矩阵,并且服从【0,1】

array([[0.41149638, 0.61946996, 0.76353632],
       [0.15538046, 0.9615752 , 0.11827965],
       [0.62096548, 0.11298423, 0.28300111]])

y = np.multiply(0.1,np.random.randn(2,3))+0.5 # 一般正太分布

array([[0.48038695, 0.40829938, 0.43245035],
       [0.36174277, 0.51192861, 0.5244684 ]])

import numpy as np
z = np.random.randint(2,9,(2,3))

array([[8, 2, 4],
       [7, 8, 4]])

m = np.random.randint(9,size = (2,3))

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

x = 'Who the hell are U?'
type(x)

assert type(x)==str,  'x is not str'
x = [1,2,3,67,89]
type(x)

import numpy as np
A = np.arange(95,104).reshape(3,3)

array([[ 95,  96,  97],
       [ 98,  99, 100],
       [101, 102, 103]])

np.pad(A,((1,2),(1,3)),'constant',constant_values = (0,0))

array([[  0,   0,   0,   0,   0,   0,   0],
       [  0,  95,  96,  97,   0,   0,   0],
       [  0,  98,  99, 100,   0,   0,   0],
       [  0, 101, 102, 103,   0,   0,   0],
       [  0,   0,   0,   0,   0,   0,   0],
       [  0,   0,   0,   0,   0,   0,   0]])

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

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

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

       [[4, 5],
        [1, 2]]])

np.pad(b, ((2,2),(1,1),(3,3)), 'constant', constant_values = 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, 0],
        [0, 0, 0, 0, 0, 0, 0, 0]],

       [[0, 0, 0, 0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0, 0, 0, 0]],

       [[0, 0, 0, 0, 0, 0, 0, 0],
        [0, 0, 0, 1, 2, 0, 0, 0],
        [0, 0, 0, 3, 4, 0, 0, 0],
        [0, 0, 0, 0, 0, 0, 0, 0]],

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

       [[0, 0, 0, 0, 0, 0, 0, 0],
        [0, 0, 0, 4, 5, 0, 0, 0],
        [0, 0, 0, 1, 2, 0, 0, 0],
        [0, 0, 0, 0, 0, 0, 0, 0]],

       [[0, 0, 0, 0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0, 0, 0, 0]],

       [[0, 0, 0, 0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0, 0, 0, 0]]])

import numpy as np
x = np.empty([3,3], dtype = str)
print (x)

[['' '' '']
 ['' '' '']
 ['' '' '']]

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

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

c.astype(np.float32)

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

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

array([[1, 3, 5],
       [1, 3, 5]])

array([[4, 4, 4],
       [6, 6, 6]])

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

array([[3, 4, 5, 1, 1, 1],
       [1, 3, 4, 2, 2, 2],
       [1, 1, 1, 2, 2, 2]])

np.vstack((x,y)) # 竖直堆叠

array([[3, 4, 5],
       [1, 3, 4],
       [1, 1, 1],
       [1, 1, 1],
       [2, 2, 2],
       [2, 2, 2]])

import numpy as np
a = np.array([0.11111,0.89568,5.00688])
np.round(a) # 四舍五入取整, np.around 和 round 用法一致

array([0., 1., 5.])

np.round(a,decimals = 2) # 四舍五入保留2位小数

array([0.11, 0.9 , 5.01])

np.floor(a) # 向下取整

array([0., 0., 5.])

np.ceil(a) # 向上取整

array([1., 1., 6.])

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

array([[1],
       [2],
       [5],
       [4]])

c[np.newaxis,:]

array([[1, 2, 5, 4]])

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]])

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

b1 = b.reshape((1,3,4)).transpose((1,0,2))

array([[[3, 4, 5, 6]],

       [[1, 2, 3, 4]],

       [[4, 5, 5, 5]]])

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

a1+b1

array([[[ 4,  6,  8, 12],
        [ 7,  9, 11, 12]],

       [[ 2,  4,  6, 10],
        [ 5,  7,  9, 10]],

       [[ 5,  7,  8, 11],
        [ 8, 10, 11, 11]]])

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

array([[[1, 2, 5],
        [3, 4, 6]],

       [[4, 5, 6],
        [7, 8, 9]]])

c.transpose(1,0,2) # 将c的维度按照 第1维度,第0维度,第2维度的排序排成 第0,1,2维度

array([[[1, 2, 5],
        [4, 5, 6]],

       [[3, 4, 6],
        [7, 8, 9]]])

c.transpose(1,2,0) # 将c的维度按照 第1维度,第2维度,第0维度的排序排成 第0,1,2维度

array([[[1, 4],
        [2, 5],
        [5, 6]],

       [[3, 7],
        [4, 8],
        [6, 9]]])

import numpy as np
a = np.array([2,2,3,4,5,5,6,7])
a[0:7: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
    评论
### 回答1: numpy、pandas和matplotlib是Python中常用的数据处理和可视化工具库。它们可以帮助我们更方便地进行数据分析和展示。 numpy是Python中的一个科学计算库,提供了高效的数组操作和数学函数。它可以用来处理各种类型的数据,如数字、字符串、图像等。 pandas是Python中的一个数据分析库,提供了高效的数据结构和数据分析工具。它可以用来处理各种类型的数据,如表格、时间序列等。 matplotlib是Python中的一个数据可视化库,提供了各种绘图工具和图形界面。它可以用来绘制各种类型的图表,如折线图、散点图、柱状图等。 在使用这些库时,我们需要先导入它们的模块,然后调用相应的函数来完成我们需要的操作。例如,我们可以使用numpy中的array函数来创建一个数组,使用pandas中的read_csv函数来读取一个CSV文件,使用matplotlib中的plot函数来绘制一个折线图等。 总之,numpy、pandas和matplotlib是Python中非常重要的数据处理和可视化工具库,掌握它们的使用方法对于进行数据分析和展示非常有帮助。 ### 回答2: numpy是Python数据科学中最基本的库之一,它提供高效的数组和矩阵运算,使处理数字计算变得更加容易。numpy的数组在数学计算和数据科学方面被广泛使用,这些应用包括线性代数、数组操作、统计学和图像处理等。 pandas是Python中用于数据处理和数据分析的重要库之一,它被用来读取、跟踪和管理大量数据。pandas提供高效的DataFrame和Series数据结构,使得数据分析更加简洁、易于阅读和理解。pandas在处理数据时非常方便,可以轻松地执行数据过滤、排序、聚合和连接。 matplotlib是Python中用于数据可视化和科学绘图的库,它提供Python中最灵活和最可定制的绘图选项之一。使用matplotlib,用户可以生成各种不同的图形展示,包括线图、柱状图、散点图和饼图等,同时matplotlib还允许用户进行自定义调整、注释和标记。 以上三个库的组合提供了Python中非常强大的数据科学生态系统,适合用于数据处理、分析和可视化。这些库的使用也非常广泛,包括数据科学领域、金融领域、物理学领域和天文学领域等。无论是初学者还是专业人士,都可以从中获益和发挥作用。 ### 回答3: numpy、pandas、和matplotlib是Python中非常常用的三个模块,它们能够方便地进行数据处理和数据可视化。 首先,我们来谈一下numpynumpy是Python中处理科学数据的基础模块。通过使用numpy,我们能够方便地进行矩阵运算、数值分析、信号处理、图像处理等科学计算,从而更好地处理数据。在numpy中最重要的是其多维数组对象ndarray,通过使用ndarray,我们可以对数组中的数据进行高效的数学运算,例如加减乘除等。另外,numpy还提供了一些方便的函数,例如随机数生成函数、拷贝和转换函数等,使得使用numpy进行科学计算变得更加得心应手。 接下来,我们来说一下pandas。Pandas是一个Python工具包,主要用于数据处理和数据分析。Pandas中的两个主要数据结构是Series和DataFrame,它们可以方便地处理各种类型的数据,从而使得数据清洗和数据分析变得更加高效和简单。使用Pandas,我们可以轻松读取和导入数据,处理和过滤数据,清理和填充数据,以及进行数据分析和可视化。Pandas提供了很多工具,例如数据重构、分组、聚合、切片、索引、透视以及时间序列等,使得数据处理和分析变得更加高效和灵活。 最后,我们来看一下matplotlib。Matplotlib是一个Python中常用的数据可视化工具。它提供一系列高质量的数据可视化图形,例如折线、散点、柱形、饼图、等高线、瀑布图等等。通过使用matplotlib,我们可以快速地将获得的数据进行可视化,从而更容易地发现其中的规律和特点。Matplotlib提供了丰富的参数设置和样式选项,使得生成的图形可以更加美观和专业。同时,matplotlib还提供了集成的图像显示和保存函数,可以轻松地将图形保存在不同的格式中,例如PNG、PDF、SVG、EPS等格式。 总之,numpy、pandas、和matplotlib都是处理和分析数据的重要工具,它们相互补充,共同构成了Python中的数据分析生态系统。通过掌握这三个工具,我们可以轻松地处理和分析各种类型的数据,从而更好地理解数据和发现数据规律。为了掌握这三个工具,我们需要认真学习它们的基本语法和常用函数,并勤加练习。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值