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


被折叠的 条评论
为什么被折叠?



