用python生成一个向量,每个元素都是同一个字符串。

Python017

用python生成一个向量,每个元素都是同一个字符串。,第1张

使用python的列表生成式即可,列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式。代码如下:<pre t="code" l="python">>>>nl = [i + 1 for i in range(1, 10)]

>>>nl

[2, 3, 4, 5, 6, 7, 8, 9, 10]

>>>

一般的正态分布可以通过标准正态分布配合数学期望向量和协方差矩阵得到。如下代码,可以得到满足一维和二维正态分布的样本。希望有用,如有错误,欢迎指正!

# coding=utf-8

import numpy as np

from numpy.linalg import cholesky

import matplotlib.pyplot as plt

sampleNo = 1000

# 一维正态分布

# 下面三种方式是等效的

mu = 3

sigma = 0.1

np.random.seed(0)

s = np.random.normal(mu, sigma, sampleNo )

plt.subplot(141)

plt.hist(s, 30, normed=True)

np.random.seed(0)

s = sigma * np.random.randn(sampleNo ) + mu

plt.subplot(142)

plt.hist(s, 30, normed=True)

np.random.seed(0)

s = sigma * np.random.standard_normal(sampleNo ) + mu

plt.subplot(143)

plt.hist(s, 30, normed=True)

# 二维正态分布

mu = np.array([[1, 5]])

Sigma = np.array([[1, 0.5], [1.5, 3]])

R = cholesky(Sigma)

s = np.dot(np.random.randn(sampleNo, 2), R) + mu

plt.subplot(144)

# 注意绘制的是散点图,而不是直方图

plt.plot(s[:,0],s[:,1],'+')

plt.show()

我感觉你是没有理解向量的定义,跟python语法没关系,向量是表示一组带有方向的数,而计算机无法表示方向,只有用数组的叠加来表示维度。而向量就是代表某个维度上的一组数,所以它就是一行数组或者一列数组,后面就好理解了。python不能像其他语言直接定义数组,只有用列表代替。或者你可以用第三方库numpy 来实现数组定义和科学计算