Python–Numpy&pandas(一) 原创

587-王同学

发表文章数:79

首页 » 数据科学库 » 正文

1.1创建

​
#!usr/bin/env python
# -*- coding:utf-8 _*-
"""
@author: Caramel
@file: __init__.py.py
@time: 2020/02/14
@desc:numpy
"""
import numpy as np

array = np.array([[1, 2, 3],
                 [2, 3, 4]])
print(array)
print('number of dimation:', array.ndim)#返回几维数组
print('shape:', array.shape)#几行几列
print('size:', array.size)#数组中一共有几个元素

​

1.2创建

#!usr/bin/env python
# -*- coding:utf-8 _*-
"""
@author: Caramel
@file: 1.2_create_array.py
@time: 2020/02/14
@desc:创建数组
"""
import numpy as np

a = np.array([[2, 3, 3, 4]], dtype=np.int)#打印出来没有逗号,array可以定义type(int, float)
print(a)
b = np.zeros((3,4))#创建一个3行四列的0矩阵
c = np.ones((3, 4))#创建一个三行四列的都是1的单位矩阵
d = np.empty((3, 4))#生成一个几乎为0的矩阵
e = np.arange(10, 20, 2)#生成一个range从10到19,步长为2
f = np.arange(12).reshape((3, 4))#重新排布成哟个矩阵
g = np.linspace(1, 10, 5)#将1~10均分成5个数字

1.3基础运算

#!usr/bin/env python
# -*- coding:utf-8 _*-
"""
@author: Caramel
@file: 1.3_basic_operation.py
@time: 2020/02/14
@desc:基础运算
"""
import numpy as np
a = np.array([10, 20, 30, 40])
b = np.arange(4)#创建从0到3

print(a, b)
c = a + b
d = a - b
f = b**2
#b的平方
g = 10*np.sin(a)#cos、tan都是以这种形式
print(c)
print(d)
print(b)
print(b < 3)#输出true、false看结果是否符合条件

mat1 = np.array([[1, 1],
                 [0, 1]])
mat2 = np.arange(4).reshape((2, 2))
mat3 = mat1*mat2#星号表示按位相乘
mat4 = np.dot(mat1, mat2)#矩阵相乘
mat5 = mat1.dot(mat2)

mat6 = np.random.random((2, 4))#创建一个二行四列的随机矩阵
print(np.sum(mat6), axis = 1)
print(np.max(mat6), axis = 0)
print(np.min(mat6), axis = 1)
'''
axis = 1 表示在列中进行操作
axis = 0 表示在行中进行操作
'''

1.4基础运算

#!usr/bin/env python
# -*- coding:utf-8 _*-
"""
@author: Caramel
@file: 1.4_basic_operation2.py
@time: 2020/02/14
@desc:基础运算
"""
import numpy as np
mat1 = np.arange(2, 14).reshape((3, 4))
print(mat1)
print(np.argmin(mat1))#输出最小值的索引
print(np.argmax(mat1))#输出最大值的索引
print(np.mean(mat1))#输出平均值
print(mat1.mean())
print(np.average(mat1))#求平均值
print(np.median(mat1))#输出中位数
print(np.cumsum(mat1))#输出累加值,但是元素个数和矩阵中一样,shape变成一行
print(np.diff(mat1))#垒差,但是shape和原来的矩阵一致
print(np.nonzero(mat1))#代表,输出两个数组,前面和后面对应出一个地址
print(np.sort(mat1))#排序
print(np.transpose(mat1))#转置,行变成列,列变成行
print((mat1.T).dot(mat1))#也是转置
print(np.clip(mat1, 5, 9))#所有大于9的数都变成9,所有小于5的数都变成5,中间值保持不变

1.5索引

#!usr/bin/env python
# -*- coding:utf-8 _*-
"""
@author: Caramel
@file: 1.5_index.py
@time: 2020/02/14
@desc:索引
"""
import numpy as np

mat1 = np.arange(3, 15)
print(mat1)
print(mat1[3])#从0开始数
mat2 = np.arange(3, 15).reshape((3, 4))
print(mat2[2])#输出整行
print(mat2[1][1])#输出第二行第二列
print(mat2[1, 1])#同上
print(mat2[2, :])#输出第三行所有的数
print(mat2[1, 1:3])#输出第二行第2列到第四列
for row in mat2:
    print(row)#打印每一行
for column in mat2.T:
    print(column)#转置之后行变成列,输出列
print(mat2.flatten())#变成之后一行的序列
for item in mat2.flat:#迭代器
    print(item)

1.6矩阵合并

#!usr/bin/env python
# -*- coding:utf-8 _*-
"""
@author: Caramel
@file: 1.6_array_combination.py
@time: 2020/02/14
@desc:矩阵合并
"""
import numpy as np
mat1 = np.array([1, 1, 1])
mat2 = np.array([2, 2, 2])
print(np.vstack(mat1, mat2))#上下合并,vertical
print(np.hstack(mat1, mat2))#左右合并,horizontal
print(mat1[:, np.newaxis])#将mat1竖过来
mat3 = np.concatenate((mat1, mat2, mat2, mat1),axis=0)

1.7分割矩阵

#!usr/bin/env python
# -*- coding:utf-8 _*-
"""
@author: Caramel
@file: 1.6_array_combination.py
@time: 2020/02/14
@desc:矩阵合并
"""
import numpy as np
mat1 = np.array([1, 1, 1])
mat2 = np.array([2, 2, 2])
print(np.vstack(mat1, mat2))#上下合并,vertical
print(np.hstack(mat1, mat2))#左右合并,horizontal
print(mat1[:, np.newaxis])#将mat1竖过来
mat3 = np.concatenate((mat1, mat2, mat2, mat1),axis=0)

1.8复制

#!usr/bin/env python
# -*- coding:utf-8 _*-
"""
@author: Caramel
@file: 1.8_array_copy_deep_copy.py
@time: 2020/02/14
@desc:复制
"""
import numpy as np
mat1 = np.arange(4)
print(mat1)
mat2 = mat1
mat3 = mat1
mat4 = mat2
mat1[0] = 9
print(mat1)
#看看别的复制的矩阵是不是也变了
print(mat2 is mat1)
print(mat2)
print(mat3)
print(mat4 is mat1)
#可以得出都是一个变量,改一个全都变
mat5 = mat1.cpoy()#深度cpoy,改一个;另一个不会改变

 

拜师教育学员文章:作者:587-王同学, 转载或复制请以 超链接形式 并注明出处 拜师资源博客
原文地址:《Python–Numpy&pandas(一) 原创》 发布于2020-09-16

分享到:
赞(0) 打赏

评论 抢沙发

评论前必须登录!

  注册



长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

Vieu3.3主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录