python计算库_唐宇迪-python计算库numpy

这篇博客介绍了如何使用Python计算库numpy进行数据操作。内容包括导入numpy、读取文件、创建和访问数组、数组的比较、类型转换、矩阵的加法、生成等差数列、随机数生成以及各种数组运算,如求和、乘方、平方根等。还讨论了数组的维度、形状和数据类型,以及如何进行数组的切片和复制。此外,还展示了如何使用numpy的np.floor、np.random.random()、np.vsplit等方法进行数值处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python计算库numpy

导入numpy

读取文件

创建numpy数组

查看数组大小

查看数组类型

numpy数组的访问

作比较

类型转换

矩阵的和

numpy生成等差数列

访问数组的维度

数组总元素

生成全1、全0的数组

生成等差数列(np.arange)

生成随机数

生成等差数列 (np.linspace)

数组运算

numpy的常用方法

np.exp和np.sqrt

np.floor和.resize和.ravel和np.random

np.floor和np.hstack和np.random.random()

np.vsplit

id

view方法

copy方法

np.tile

np.argsort

导入numpy

import numpy

读取文件

xxx=numpy.genfromtxt("xxx.txt", delimiter=",")

# numpy.genfromtxt("xxx.txt", delimiter=",",dtype="U75", skip_header=1)

print(type(xxx))

#

创建numpy数组

#The numpy.array() function can take a list or list of lists as input. When we input a list, we get a one-dimensional array as a result:

vector = numpy.array([5, 10, 15, 20])

#When we input a list of lists, we get a matrix as a result:

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

print(vector)

print(matrix)

#[ 5 10 15 20]

#[[ 5 10 15]

# [20 25 30]

# [35 40 45]]

查看数组大小

#We can use the ndarray.shape property to figure out how many elements are in the array

vector = numpy.array([1, 2, 3, 4])

print(vector.shape)

#For matrices, the shape property contains a tuple with 2 elements.

matrix = numpy.array([[5, 10, 15], [20, 25, 30]])

print(matrix.shape)

# (4,)

#(2, 3)

查看数组类型

#Each value in a NumPy array has to have the same data type

#NumPy will automatically figure out an appropriate data type when reading in data or converting lists to arrays.

#You can check the data type of a NumPy array using the dtype property.

numbers = numpy.array([1, 2, 3, 4])

numbers.dtype

numpy数组的访问

与list访问方法相同

matrix = numpy.array([

[5, 10, 15],

[20, 25, 30],

[35, 40, 45]

])

print(matrix[:,1])

matrix = numpy.array([

[5, 10, 15],

[20, 25, 30],

[35, 40, 45]

])

print(matrix[:,0:2])

作比较

import numpy

#it will compare the second value to each element in the vector

# If the values are equal, the Python interpreter returns True; otherwise, it returns False

vector = numpy.array([5, 10, 15, 20])

vector == 10

# array([False, True, False, False], dtype=bool)

#Compares vector to the value 10, which generates a new Boolean vector [False, True, False, False]. It assigns this result to equal_to_ten

vector = numpy.array([5, 10, 15, 20])

equal_to_ten = (vector == 10)

print(equal_to_ten)

print(vector[equal_to_ten])

# [False True False False]

# [10]

类型转换

#We can convert the data type of an array with the ndarray.astype() method.

vector = numpy.array(["1", "2", "3"])

print(vector.dtype)

print(vector)

vector = vector.astype(float)

print(vector.dtype)

print(vector)

矩阵的和

# The axis dictates which dimension we perform the operation on

#1 means that we want to perform the operation on each row, and 0 means on each column

matrix = numpy.array([

[5, 10, 15],

[20, 25, 30],

[35, 40, 45]

])

matrix.sum(axis=1)

# array([ 30, 75, 120])

numpy生成等差数列

import numpy as np

a = np.arange(15).reshape(3, 5)

a

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

# [ 5, 6, 7, 8, 9],

# [10, 11, 12, 13, 14]])

访问数组的维度

#the number of axes (dimensions) of the array

a.ndim

# 2

数组总元素

#the total number of elements of the array

a.size

生成全1、全0的数组

np.zeros ((3,4))

#array([[ 0., 0., 0., 0.],

# [ 0., 0., 0., 0.],

# [ 0., 0., 0., 0.]])

np.ones( (2,3,4), dtype=np.int32 )

#array([[[1, 1, 1, 1],

# [1, 1, 1, 1],

# [1, 1, 1, 1]],

#

# [[1, 1, 1, 1],

# [1, 1, 1, 1],

# [1, 1, 1, 1]]])

生成等差数列(np.arange)

#To create sequences of numbers

np.arange( 10, 30, 5 )

# array([10, 15, 20, 25])

np.arange(12).reshape(4,3)

# array([[ 0, 1, 2],

# [ 3, 4, 5],

# [ 6, 7, 8],

# [ 9, 10, 11]])

生成随机数

np.random.random((2,3))

# array([[ 0.40130659, 0.45452825, 0.79776512],

# [ 0.63220592, 0.74591134, 0.64130737]])

生成等差数列 (np.linspace)

from numpy import pi

np.linspace( 0, 2*pi, 100 )

#array([ 0. , 0.06346652, 0.12693304, 0.19039955, 0.25386607,

# 0.31733259, 0.38079911, 0.44426563, 0.50773215, 0.57119866,

# 0.63466518, 0.6981317 , 0.76159822, 0.82506474, 0.88853126,

# 0.95199777, 1.01546429, 1.07893081, 1.14239733, 1.20586385,

# 1.26933037, 1.33279688, 1.3962634 , 1.45972992, 1.52319644,

# 1.58666296, 1.65012947, 1.71359599, 1.77706251, 1.84052903,

# 1.90399555, 1.96746207, 2.03092858, 2.0943951 , 2.15786162,

# 2.22132814, 2.28479466, 2.34826118, 2.41172769, 2.47519421,

# 2.53866073, 2.60212725, 2.66559377, 2.72906028, 2.7925268 ,

# 2.85599332, 2.91945984, 2.98292636, 3.04639288, 3.10985939,

# 3.17332591, 3.23679243, 3.30025895, 3.36372547, 3.42719199,

# 3.4906585 , 3.55412502, 3.61759154, 3.68105806, 3.74452458,

# 3.8079911 , 3.87145761, 3.93492413, 3.99839065, 4.06185717,

# 4.12532369, 4.1887902 , 4.25225672, 4.31572324, 4.37918976,

# 4.44265628, 4.5061228 , 4.56958931, 4.63305583, 4.69652235,

# 4.75998887, 4.82345539, 4.88692191, 4.95038842, 5.01385494,

# 5.07732146, 5.14078798, 5.2042545 , 5.26772102, 5.33118753,

# 5.39465405, 5.45812057, 5.52158709, 5.58505361, 5.64852012,

# 5.71198664, 5.77545316, 5.83891968, 5.9023862 , 5.96585272,

# 6.02931923, 6.09278575, 6.15625227, 6.21971879, 6.28318531])

数组运算

#the product operator * operates elementwise in NumPy arrays

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

b = np.arange( 4 )

#print a

#print b

#b

c = a-b

#print c

b**2

#print b**2

print(a<35)

#The matrix product can be performed using the dot function or method

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

[0,1]] )

B = np.array( [[2,0],

[3,4]] )

print(A)

print(B)

#print A*B

print(A.dot(B))

print(np.dot(A, B))

numpy的常用方法

np.exp和np.sqrt

import numpy as np

B = np.arange(3)

print(B)

#print np.exp(B)

print(np.sqrt(B))

np.floor和.resize和.ravel和np.random

#Return the floor of the input

a = np.floor(10*np.random.random((3,4)))

#print(a)

#a.shape

## flatten the array

#print(a.ravel())

#a.shape = (6, 2)

#print(a)

#print(a.T)

print(a.resize((2,6)))

print(a)

#If a dimension is given as -1 in a reshaping operation, the other dimensions are automatically calculated:

#a.reshape(3,-1)

np.floor和np.hstack和np.random.random()

np.random.random():Return random floats in the half-open interval [0.0, 1.0).

np.hstack:Stack arrays in sequence horizontally (column wise).

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.hstack((a,b)))

#np.hstack((a,b))

np.vsplit

Split an array into multiple sub-arrays vertically (row-wise).

a = np.floor(10*np.random.random((2,12)))

#print a

#print np.hsplit(a,3)

#print np.hsplit(a,(3,4)) # Split a after the third and the fourth column

a = np.floor(10*np.random.random((12,2)))

print(a)

np.vsplit(a,3)

id

Return the identity of an object.

#Simple assignments make no copy of array objects or of their data.

a = np.arange(12)

b = a

# a and b are two names for the same ndarray object

b is a

b.shape = 3,4

print(a.shape)

print(id(a))

print(id(b))

view方法

a.view(dtype=None, type=None)

New view of array with the same data.

#The view method creates a new array object that looks at the same data.

c = a.view()

c is a

c.shape = 2,6

#print a.shape

c[0,4] = 1234

a

copy方法

a.copy(order=‘C’)

Return a copy of the array.

#The copy method makes a complete copy of the array and its data.

d = a.copy()

d is a

d[0,0] = 9999

print(d)

print(a)

np.tile

Construct an array by repeating A the number of times given by reps.

a = np.arange(0, 40, 10)

b = np.tile(a, (3, 5))

print(a)

print(b)

#[ 0 10 20 30]

#[[ 0 10 20 30 0 10 20 30 0 10 20 30 0 10 20 30 0 10 20 30]

# [ 0 10 20 30 0 10 20 30 0 10 20 30 0 10 20 30 0 10 20 30]

# [ 0 10 20 30 0 10 20 30 0 10 20 30 0 10 20 30 0 10 20 30]]

np.argsort

Returns the indices that would sort an array.

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

#print(a)

#b = np.sort(a, axis=1)

#print(b)

#b

#a.sort(axis=1)

#print(a)

a = np.array([4, 3, 1, 2])

j = np.argsort(a)

print(j)

print(a[j])

#[2 3 1 0]

#[1 2 3 4]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值