bilibili视频学习-numpy

学习python的numpy库的一些笔记

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline

numpy的属性

  1. array.ndim
  2. array.shape
  3. array.size
array = np.array([[1,2,3],
 [4,5,6]])
print(array)
[[1 2 3]
 [4 5 6]]
print('number of dim:',array.ndim)
print('shape:',array.shape)
print('size:',array.size)
number of dim: 2
shape: (2, 3)
size: 6

numpy创建array

  1. np.array([],dtype = ?)
  2. np.zeros()
  3. np.ones()
  4. np.empty()
  5. np.linspace()
  6. np.arange()
a = np.array([1,122,34,24,325,43,67],dtype = np.int64)
print(a)
[  1 122  34  24 325  43  67]
a = np.array([12,2134,2,453,6,45],dtype = np.float64)
print(a)
print(a.dtype)
[1.200e+01 2.134e+03 2.000e+00 4.530e+02 6.000e+00 4.500e+01]
float64
a = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
a
array([[ 1,  2,  3,  4],
       [ 5,  6,  7,  8],
       [ 9, 10, 11, 12]])

a = np.zeros((3,4),dtype = np.int64)
a
array([[0, 0, 0, 0],
       [0, 0, 0, 0],
       [0, 0, 0, 0]])
a = np.ones((3,4))
a
array([[1., 1., 1., 1.],
       [1., 1., 1., 1.],
       [1., 1., 1., 1.]])
a = np.empty((3,4))
print(a)
[[1. 1. 1. 1.]
 [1. 1. 1. 1.]
 [1. 1. 1. 1.]]

a = np.arange(10,20,2)
a
array([10, 12, 14, 16, 18])
a = np.arange(12).reshape((3,4))
a
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])

a = np.linspace(1,10,10,dtype = np.int64)
a
array([ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10])

a = np.linspace(1,10,10,dtype = np.int64).reshape((2,5))
print(a)
[[ 1  2  3  4  5]
 [ 6  7  8  9 10]]

numpy基础运算

  1. 数学函数调用
  2. c[c
a = np.array([10,20,30,40])
b = np.arange(4)
c = a-b
print(a,b,c)
[10 20 30 40] [0 1 2 3] [10 19 28 37]

c = 10*np.sin(a)
c
array([-5.44021111,  9.12945251, -9.88031624,  7.4511316 ])

print(c<5)
d = c<5
c[d]
[ True False  True False]

array([-5.44021111, -9.88031624])
select = np.arange(25).reshape((5,5))
a = np.ones(25).reshape((5,5))
select = select>4
print(a[select])
[1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]

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

c = a*b
print(c)

c = np.dot(a,b)
print(c)

a.dot(b)
[[0 0]
 [0 3]]
[[0 1]
 [2 3]]

array([[0, 1],
       [2, 3]])
a = np.random.random((4,4))
a[a>0.5]

array([0.75071659, 0.54349795, 0.53320956, 0.64108411, 0.86867602,
       0.74984389, 0.77493445, 0.8542434 , 0.66811161, 0.72019505,
       0.98319772])

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

a.reshape(2,8)
print(np.sum(a,axis = 0))
print(np.sum(a,axis = 1))
9.532522256454564 0.014624980614642125 0.9831977219683379
[2.27119303 2.96623915 1.84672342 2.44836666]
[1.95086702 2.79281358 2.40271229 2.38612936]
a = a.reshape(2,8)
print(np.sum(a,axis = 1))
print(np.sum(a,axis = 0))
[4.7436806  4.78884165]
[1.06987186 1.60495999 0.96342242 0.71532505 1.20132117 1.36127916
 0.883301   1.73304161]
A = np.arange(2,14).reshape(3,4)
print(A)
print(np.argmin(A),A.min())
print(np.argmax(A),A.max())
print(np.mean(A),A.mean(),np.average(A))
print(np.median(A))
print(np.cumsum(A))
print(np.diff(A))
np.nonzero(A)
[[ 2  3  4  5]
 [ 6  7  8  9]
 [10 11 12 13]]
0 2
11 13
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]),
 array([0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3]))
A = np.arange(14,2,-1).reshape(3,4)
print(A)
print(np.sort(A))
print(np.transpose(A))

A.T.dot(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]]
[[14 10  6]
 [13  9  5]
 [12  8  4]
 [11  7  3]]

array([[332, 302, 272, 242],
       [302, 275, 248, 221],
       [272, 248, 224, 200],
       [242, 221, 200, 179]])

print(np.clip(A,5,9))
print(np.mean(A,axis = 0))
[[9 9 9 9]
 [9 9 8 7]
 [6 5 5 5]]
[10.  9.  8.  7.]

numpy索引

  1. [:]
  2. flat and flatten()
A = np.arange(3,15).reshape(3,4)
print(A)
print('\n',A[2][1],'\n',A[2,1])
print('\n',A[:][1])
print(A[1,1:3])

for row in A:
    print(row)

for column in A.T:
    print(column)

for item in A.flat:
    print(item)

print(A.flat)
print(A.flatten())
[[ 3  4  5  6]
 [ 7  8  9 10]
 [11 12 13 14]]

 12
 12

 [ 7  8  9 10]
[8 9]
[3 4 5 6]
[ 7  8  9 10]
[11 12 13 14]
[ 3  7 11]
[ 4  8 12]
[ 5  9 13]
[ 6 10 14]
3
4
5
6
7
8
9
10
11
12
13
14
<numpy.flatiter object at 0x7f987c80ca00>
[ 3  4  5  6  7  8  9 10 11 12 13 14]
</numpy.flatiter>

numpy array 合并

  1. vstack and hstack
  2. concatenate
A = np.array([1,1,1])
B = np.array([2,2,2])

print(np.vstack((A,B)))

print(np.hstack((A,B)))
[[1 1 1]
 [2 2 2]]
[1 1 1 2 2 2]
print(A.T.shape)
A.T
A.reshape(3,1)

print(A[:,np.newaxis])
(3,)
[[1]
 [1]
 [1]]
A = np.array([1,1,1])
A = A[:,np.newaxis]
B = np.array([2,2,2])

B = B[:,np.newaxis]
print(np.hstack((A,B)))
[[1 2]
 [1 2]
 [1 2]]
A = np.array([1,1,1]).reshape(3,1)
B = np.array([2,2,2]).reshape(3,1)

C = np.concatenate((A,B,A,B),axis = 1)
C
array([[1, 2, 1, 2],
       [1, 2, 1, 2],
       [1, 2, 1, 2]])

array分割

  1. split(,axis = ?)
  2. vsplit and hsplit
A = np.arange(12).reshape(3,4)
print(A)
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]
np.split(A,2,axis = 1)
[array([[0, 1],
        [4, 5],
        [8, 9]]),
 array([[ 2,  3],
        [ 6,  7],
        [10, 11]])]
np.split(A,3,axis = 0)
[array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8,  9, 10, 11]])]

a,b,c = np.array_split(A,3,axis = 1)
np.vsplit(A,3)
[array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8,  9, 10, 11]])]
np.hsplit(A,2)
[array([[0, 1],
        [4, 5],
        [8, 9]]),
 array([[ 2,  3],
        [ 6,  7],
        [10, 11]])]

copy & deep copy

deep copy需要依靠copy方法,甚至于切片的方法也是不够的

A = np.arange(3)
B = A
A[2] = 1
B
array([0, 1, 1])
assert B is A
B[1:3] = [22,33]
A
array([ 0, 22, 33])

B = A[:]
B[1:3] = [0,1]
print(A)
B
[0 0 1]

array([0, 0, 1])

B = A.copy()
B[:] = [1,2,3]
print(A)
B
[0 0 1]

array([1, 2, 3])

Original: https://blog.csdn.net/weixin_45955424/article/details/122610261
Author: NKUer_there
Title: bilibili视频学习-numpy

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/760285/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • python中的join函数连接dataframe_使用pandas对两个dataframe进行join的实例

    需求: 两个文件,一个文件为统计报表,里面含有手机号,另一个文件为手机号段归属地,含有手机号码前七位对应的地区。需要对统计报表进行处理,将手机号所在的归属地加入到统计报表中,使用p…

    Python 2023年8月20日
    061
  • 【老生谈算法】基于matlab指纹识别系统设计与算法原理详解(论文+程序源码)——指纹识别

    【老生谈算法】基于matlab指纹识别系统设计与算法原理(论文+程序源码) 大家好,今天给大家介绍基于matlab的指纹识别系统设计与算法原理(论文+程序源码)。 文章目录: 【老…

    Python 2023年10月8日
    046
  • Python项目实践之五:项目思维总结

    Python项目实践之五:项目思维总结 《外星人入侵》项目是《Python编程从入门到实践》这本书上的内容,我通过认真阅读此项目,完成了这个小项目,现在把开发过程中的一些心得体会总…

    Python 2023年9月23日
    038
  • python中等高线填充颜色_Matplotlib等高线图颜色b

    我正在把我的数据绘制成等高线图。计算是在转换后的值上进行的,所以我需要将它恢复到原来的值。在代码的第四行,是重新翻译的过程。 但是,当我绘制它时,颜色栏显示相对值,并且只是颜色栏顶…

    Python 2023年9月5日
    075
  • Python练习实例031

    问题:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。 #! /usr/bin/env python3 -*- coding:utf-8 -*…

    Python 2023年6月11日
    072
  • 关系代数(关系代数的五个基本操作)

    五种基本关系代数运算是? 五种基本关系代数运算是并、差、投影、交、选择、投影。 1、并:设有两个关系R和S,它们具有相同的结构。R和S的并是由属于R或属于S的元组组成的集合,运算符…

    Python 2023年10月9日
    084
  • 1.Pandas文件读入

    1.文件读取 输入文件路径时可以采用 绝对路径和 相对路径两种方式 1.绝对路径绝对路径是计算机硬盘上的位置,需要输入完整的文件路径windows默认的文件路径是以 \ 进入下一级…

    Python 2023年8月21日
    054
  • windows上用vs2017静态编译onnxruntime-gpu CUDA cuDNN TensorRT的坎坷之路

    因为工作业务需求的关系,需编译onnxruntime引入项目中使用,主项目exe是使用的vs2017+qt5.12。 onnxruntime就不用介绍是啥了撒,在优化和加速AI机器…

    Python 2023年10月24日
    051
  • Pandas Dataframe 常用方法

    trauma_demo = trauma_demo[[‘PERSON_ID’,’VISIT_DATE’,’VISIT_END_DATE’]] 1 df1[‘付款时间1’] = pd…

    Python 2023年8月6日
    074
  • Pytest框架 — 07、Pytest的Fixture(部分前后置)(二)

    4、Fixture的相互调用 示例: import pytest 第一层fixture @pytest.fixture() def fixture_1(): data = &quo…

    Python 2023年5月23日
    089
  • 轻量级bug管理平台——管理中心

    管理中心预计效果如下: django写离线脚本 探讨业务 设计表结构 我的表结构 功能实现【任务】 查看项目列表 创建项目 星标项目 今日详细 1、django 离线脚本 djan…

    Python 2023年6月12日
    073
  • VSCODE 配置远程调试环境

    以下内容为本人的著作,如需要转载,请声明原文链接微信公众号「englyf」 https://mp.weixin.qq.com/s/f1KZOlL92ojes-r2l9rlCw 我的…

    Python 2023年10月22日
    058
  • 用pip安装cuda版本的torch

    大佬可以跳过不看了,这里只是我试了后记录一下的。 原因:在下载torch_parse这个包的时候,它不知道怎么抽风了,把我的GPU版本顶掉了。我的猜测是可能因为文件名的冲突,它觉得…

    Python 2023年8月1日
    0156
  • pandas之DataFrame的级联、合并操作

    今天讲的是pandas之DataFrame的级联、合并操作。 1、级联操作(就是将多个DataFrame进行横向或者纵向的拼接): pd.concat() pd.append() …

    Python 2023年8月7日
    082
  • Python字典查找数据的5个操作方法

    上一篇文章写了关于字典操作方法的增删改,这篇主要讲解如何查找字典数据。查找数据写法一共有两种,一种能够是key值查找,另外一种是按照函数的写法进行数据查找。 一、key值查找 如果…

    Python 2023年8月2日
    0142
  • 10 个杀手级的 Python 自动化脚本

    重复性任务总是耗时且无聊,想一想你想要一张一张地裁剪 100 张照片或 Fetch API、纠正拼写和语法等工作,所有这些任务都很耗时,为什么不自动化它们呢?在今天的文章中,我将与…

    Python 2023年8月3日
    049
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球