python-numpy(1)-基础操作全集

numpy基础功能

本节介绍numpy的一些基本操作:

  • numpy 创建对象
  • numpy 基本操作
  • numpy 文件读取

一、创建

1.1 创建基础类型

numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)
名称描述
object数组或嵌套的数列
dtype数组元素的数据类型,可选
copy对象是否需要复制,可选
order创建数组的样式,C为行方向,F为列方向,A为任意方向(默认)
subok默认返回一个与基类类型一致的数组
ndmin指定生成数组的最小维度
import numpy as np
a = np.array([1, 2, 3])
print(a)
# 多于一个维度
import numpy as np

a = np.array([[1, 2], [3, 4]])
print(a)
# 最小维度
import numpy as np

a = np.array([1, 2, 3, 4, 5], ndmin=2)
print(a)
# dtype 参数
import numpy as np

a = np.array([1, 2, 3], dtype=complex)
print(a)

1.2 0矩阵

# 全为0的矩阵(元组创建)
np.zeros((3, 4))  
# 全为0的矩阵(数组创建)
np.zeros([3, 4])  

1.3 1矩阵

np.ones((2, 3, 4), dtype=np.int32)  # 全为1的矩阵

1.4 指定间距创建np

print(np.arange(10, 30, 5))  # 以5为间距
print(np.arange(0, 2, 0.3))  # 以0.3为间距

1.5 随机数np

np.random.random((2, 3))  # 产生随机数

1.6 线性空间

from numpy import pi
np.linspace(0, 2 * pi, 100)  #  0~2*pi之间有100个数
np.sin(np.linspace(0, 2 * pi, 100))  # 给这100个数取正弦值

二、 练习numpy这个结构

2.1 数组信息获取

  • v=numpy.arrays(list),创建数组
  • type(v):结构
  • v.shape:数组的维度
  • v.dtype:数组的数据类型
# 创建数组
# 一维
vector = np.array([5, 10, 15, 20])
# 二维
matrix = np.array([[5, 10, 15], [20, 25, 30], [35, 40, 45]])
print("数据:")
print("vector:", vector)
print("matrix:", matrix)
print("结构:")
print(type(vector))
print(type(matrix))
print("成员数据类型:")
print(vector.dtype)
print(matrix.dtype)
print("矩阵维度:")
print(vector.shape)
print(matrix.shape)

数组的切分

#截取部分数据:
vector = np.array([5, 10, 15, 20])  
# print(vector[0:3]) 
vector
matrix = np.array([
                    [5, 10, 15], 
                    [20, 25, 30],
                    [35, 40, 45]
                 ])
print(matrix[:,1])  # 所有样本的第二列

matrix = np.array([
                    [5, 10, 15], 
                    [20, 25, 30],
                    [35, 40, 45]
                 ])
print(matrix[:,0:2]) # 第0,1列
matrix = np.array([
                    [5, 10, 15], 
                    [20, 25, 30],
                    [35, 40, 45]
                 ])
print(matrix[1:3,0:2]) # 第1:2行,第0:1列

2.2 基本逻辑操作

介绍numpy中的一些基本逻辑操作

2.2.1.== 操作

  • 单纯判断
import numpy

vector = numpy.array([5, 10, 15, 20])
print("vector:", vector)
# 这是个判断,判断array中那些元素为10
print(vector == 10)
matrix = numpy.array([[5, 10, 15], [20, 25, 30], [35, 40, 45]])
print("matrix", matrix)
print(matrix == 25)
  • 判断加引用, 输出为true值的元素
vector = numpy.array([5, 10, 15, 20])
equal_to_ten = vector == 10
print(equal_to_ten)
print(vector[equal_to_ten])
matrix = numpy.array([[5, 10, 15], [20, 25, 30], [35, 40, 45]])
second_column_25 = matrix[:, 1] == 25
print(second_column_25)
print(matrix[second_column_25, :])

2.2.2 & 与操作

vector = numpy.array([5, 10, 15, 20])
equal_to_ten_and_five = (vector <= 10) & (vector >= 5)  # 与操作
print(equal_to_ten_and_five)

2.2.3 | 操作

vector = numpy.array([5, 10, 15, 20])
equal_to_ten_or_five = (vector == 10) | (vector == 5)  # 或操作
print(equal_to_ten_or_five)

2.3 运算

a = np.array( [20,30,40,50] )
b = np.arange( 4 )
print (a) 
print (b)

3.1 + 、-

#b
c = a-b
print (c)
c = c -1
print (c)

3.2 乘方

b = np.arange( 4 )
print("b:", b)
print ("b2:", b**2)   # 乘方操作

3.3 比较

a = np.array( [20,30,40,50] )
print (a<35)

3.4 矩阵相乘

A = np.array([[1,1],
               [0,1]])

B = np.array([[2,0],
              [3,4]])
print (A)

print ('-------')
print (B)

print ('--各个位置相乘----')
print (A*B)

print ('----矩阵相乘---')
print (A.dot(B))  #  
print ('-------')
print (np.dot(A, B)) 
A = np.array([[1,1],
               [0,1]])
            
B = np.array([[2,0],
              [3,4]])
np.matmul(A, B)

3.5 e次方与求根

B = np.arange(3)            
print (B)
print (np.exp(B))       # e的次方     
print (np.sqrt(B))      #  求根      

3.6 向下取整

a = 10*np.random.random((3,4))
print(a)
b = np.floor(a)  # 向下取整
b

3.7 水平展开

b.ravel()     # 水平展开

3.8 转置

b.T

3.9 拼接

a = np.floor(10*np.random.random((2,2)))
b = np.floor(10*np.random.random((2,2)))
print (a)
print ('---')
print (b)
print ('---')
print (np.vstack((a,b)))   # 向下拼接
print(np.hstack((a,b)))    # 左右拼接

3.10 分割

a = np.floor(10*np.random.random((2,12)))
print (a)
print ('---')
print (np.hsplit(a,3))   # 平均分成三个
print ('---')
# 在3,4处分割
print (np.hsplit(a,(3,4)))  

a = np.floor(10*np.random.random((12,2)))
print ('---')
print (a)
np.vsplit(a,3)

3.11 复制

a = np.arange(12)   # 完全相等
b = a
print (b is a)
b.shape = 3,4
print (a.shape)
print (id(a))        
print (id(b)) 
c = a.view()    # 浅层复制,值不一样,共用一组数据
print (c is a)  # 不相等
c.shape = 2,6   
print (a.shape)
c[0,4] = 1234
print (a)      
print (id(a))
print (id(c))
d = a.copy()     #深层复制
print(d is a)
d[0,0] = 9999
print (d) 
print (a)

3.12 降维

  • flatten()
    • 默认按照行降维 flatten() = flatten(‘A’)
    • 按照列降维 flatten(‘F’)
import numpy as np
a=np.array([[1,2],[3,4],[5,6]])
a
a.flatten()
a.flatten('F')

3.13 赋值操作

vector = numpy.array([5, 10, 15, 20])
equal_to_ten_or_five = (vector == 10) | (vector == 5)
vector[equal_to_ten_or_five] = 50  # 给true赋值
print(vector)


matrix = numpy.array([[5, 10, 15], [20, 25, 30], [35, 40, 45]])
second_column_25 = matrix[:, 1] == 25
print(second_column_25)
matrix[second_column_25, 1] = 10
print(matrix)

3.14 强制类型转换astype

vector = numpy.array(["1", "2", "3"])
print(vector.dtype)
print(vector)
vector = vector.astype(float)  # 强制类型转型
print(vector.dtype)
print(vector)

3.15 求最小值

vector = numpy.array([5, 10, 15, 20])
vector.min()      # 求最小值

3.16 求和

  • 求一行之和name.sum(axis=1)
  • 求一列之和name.sum(axis=0)
  • 求全部的和 name.sum()
matrix = numpy.array([[5, 10, 15], [20, 25, 30], [35, 40, 45]])
matrix.sum()
# 求每一行之和
matrix = numpy.array([[5, 10, 15], [20, 25, 30], [35, 40, 45]])
matrix.sum(axis=1)
# 求每一列之和
matrix = numpy.array([[5, 10, 15], [20, 25, 30], [35, 40, 45]])
matrix.sum(axis=0)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值